J2ME简单吗?

有几个想学J2ME的朋友问过我这个问题。我想这个问题可以有两个答案。

J2ME是简单的。

说其简单,更主要的原因是J2ME开发使用的是Java,离开平台技术范畴(J2SE,J2ME,J2EE),Java语言本身是简单的,或者说“简洁”更为强大。比起C++的程序代码来说,Java Code让人看起来更舒服,也更直观。

另一方面,J2ME的SDK十分丰富,配置也非常简单,如果再借助强大的IDE(如JB和Eclipse,不过在J2ME开发方面,我更倾向于JB),那么有一定的Java基础,J2ME上手实在不是难事。

J2ME并不简单。

更多人说J2ME简单是因为它“小”,所谓的“小”主要是针对其API少。“两三个星期就学完了”,有人如是说。但这个见解我实在不敢苟同。其实恰恰因为它提供的API少,才使得J2ME变得比传统的编程更具挑战。相对于提供了丰富的API的J2SE和J2EE来说,我们需要“自力更生”的范畴要大的多。仅有的API提供给我们了最最基础的功能,剩下的就要靠程序员自己去探索。如果你所需要的各种功能都已经被现成的API实现,那么我们不再需要学习和研究,只要一本API手册就够了。

J2ME的第二个难点在于限制大,当然这也是所有基于移动设备的开发所共同面临的问题。内存的限制,处理速度的限制让我们不得不抛弃很多美好的东西,为每一行代码做尽可能的优化,优化再优化,在内存使用和性能之间寻找平衡点..在J2ME中我们不仅要减少对象的创建,即便是对象的引用也要做到能少则少。在这样的前提下开发出来的优秀的应有、游戏、软件,可以说比桌面平台上的开发更具备含金量。

第三一个,同样是移动开发面临的公共问题:多机型适配难度大。与桌面平台不同,移动设备之间的差异十分巨大,从硬件方面的屏幕分辨率,内存,处理器到底层的KVM实现,到支持J2ME规范的程度,都不尽而同,这使得“一次编译,到处运行”的承诺在几乎成为笑柄。然而,无论如何,J2ME仍然是移动领域跨平台的最佳选择。因为无论是智能手机还是传统手机,无论采用什么样的系统,它们都支持Java,即便需要为多种进行做出更改,其代价也要小得多。同时,也考验编程人员的设计能力,一款设计良好的程序可以把适配的成本减低到最少。

最后一点问题是:KVM的Bug多,不过这一点Sun公司似乎没有什么责任。大家都知道Java的发展分为两步走:规范和实现。Sun和众多厂商制定规范,再由各个厂商根据自己的设备进行实现。然而,不知道是不是厂商的设计水平有限,目前很多机型的KVM实现都不能让人满意,Bug简直是多如牛毛,比如最经典的Nokia 6600,真正为它做过开发的人都应该深有体会。这又从另一个方面增加了开发者做多机型适配的难度。这些Bug可以充分考验编程人员调试能力:)不过随着时间的推移,相信这一点会得到改进,Nokia也一直在推出S60机型的软件升级版本以修正这些Bug。不过对于采用封闭式操作系统S40机型,就无法可想了(事实上S40的bug也要少得多)。

综上,J2ME并不像大多数人想象的那么“简单”,或者说,J2ME的入门是简单的,但如要做到“精通”,还需要掌握各种具有移动开发特色的程序设计、调试技巧,并非一蹴而就之功。

时间: 2024-10-30 19:34:28

J2ME简单吗?的相关文章

J2ME游戏开发中时钟的简单实现

时钟 在游戏开发中,有时候我们需要一个时钟来记录游戏的时间,如果时间结束则结束游戏.本文介绍如何在J2ME中使用Timer和TimerTask来实现这样一个时钟,并给出具体代码实例. 在java.util包中有一个TimerTask类,你可以扩展这个类并且实现他的run()方法,在run()方法中编写我们的逻辑代码.如果我们想制作一个游戏时钟,那么非常简单我们编写一个GameClock类扩展TimerTask,GameClock需要维持一个实例变量timeLeft,这样我们就可以记录游戏剩余的时

用EclipseME0.5.5创建一个简单的J2ME程序

程序|创建 用EclipseME0.5.5创建一个简单的J2ME程序 上一篇文章<如何在Eclipse3.0.1上安装EclipseME 0.5.5版本>,我们已经讲了如何在Eclipse3.0.1上安装Eclipse程序. 今天我们就要用他来创建我们的第一个程序.绝大多数程序教程的第一个程序,都叫做HelloWorld.那么我们就来编一个HelloWorld程序. 1, 文件2, 新建项目3, 选择J2ME,J2ME Midlet Suite4, 输入项目名称:MyFirstJ2ME5, 选

简单的j2me查询练习怎么实现?

问题描述 有一个表格,输入字符串后,去j2me的rm里查出相应记录,怎么实现. 解决方案 解决方案二:请帮忙写个简单的jar吧解决方案三:使用RMS?思路还算简单:(1)写记录,生成RMS文件.(2)读记录,存储记录到内存中.(3)按照输入进行记录过滤.解决方案四:本地资源解决方案五:使用RMS就可以实现读写,该,删除的功能解决方案六:该回复于2010-12-03 13:24:17被版主删除解决方案七:路过............

使用J2ME技术实现简单的动画(附代码实现)

在J2ME程序开发过程中经常需要实现游戏动画,例如简单的文字闪动,复杂的游戏界面变化等等,下面简单的介绍一下动画的原理,并附实现代码.       动画原理就是利用人的视觉暂留的生理特性,实现出来的一种假象.下面的代码就是不断的变化绘制的内容,实现文字的闪动.       程序的逻辑:每隔0.2秒变换一次绘制的内容,如果屏幕上没有绘制文字,则绘制,否则绘制文字.       实现代码如下:package welcomecanvas;import javax.microedition.lcdui.

J2ME中使用Canvas制作简单的游戏菜单

菜单 我们知道MIDP的图形用户界面分为两类,分别是高级图形用户界面和低级用户界面.一般来讲高级图形用户界面类使用起来比较方便,可移植性强,但是程序员对他的控制能力也很低,因为它们的界面表现是由底层控制的,而不是我们控制的.相比高级UI类,低级UI类则使用起来更难一些,但是控制能力更强,可以做出自己需要的界面. Canvas和Graphics是我们必须熟练使用的两个类,分别代表了画布和画笔(事实上更丰富,姑且这么比喻).而我们则是画画的人,而指导我们如何下笔的就是java doc了,再加上勤奋努

J2ME中用低级界面实现简单的数字输入

最近在写一个j2me程序 其中包括一个数字输入的textfield 在手机上面实现的时候(s40模拟器)数字的输入很烦琐,所以想避开这种问题 于是改用低级界面实现: private StringBuffer sb=new StringBuffer(); //定义一个StringBuffer用来保存输入的数字 private int len=4; //想输入的数字的长度 private int temp; //取数字 protected void paint(Graphics g) { g.set

一个使用J2ME技术实现的简单计算器

在实际学习的过程中,经常做一些小的项目,可以把学到的技术综合应用起来,获得一定的成就感,并锻炼逻辑思维能力. 本计算器代码的功能: 1.实现四则运算,其中除法实现的是整数除法 2.实现清楚输入功能 实现该功能的核心思路: 1.对本程序的功能进行状态划分,总共划分出三个状态: a) 输入第一个数字状态 b) 输入运算符号状态 c) 输入第二个数字状态 通过状态划分,每个状态进行对应的绘制和事件处理,这样逻辑比较清晰,编写代码起来比较简单. 2.数据的存储 在计算器程序中,存储数据是一个比较核心的逻

手机上J2ME的3D编程-简单创建3D立方体(1)

编程|创建 参考文档:JSR-184 工具:Eclipse3.0+Eclipseme API:Mobile 3D Graphics API 模拟器:Sony Ericsson 分析: 在现实生活中,我们所看到的是一个3维系统.透过双眼,可以看到的是一个丰富多彩的世界.我们所用的照相机,能够拍出很多漂亮的图片.拍摄每张图片时,可以根据拍摄距离的远近可以调整所拍摄画面上的内容. 在虚拟的世界里,可以模拟真实世界.欲将虚拟世界展示出来,就要利用一个虚拟的照相机,将虚拟的世界拍摄出来. 在JSR-184

J2ME中的时间处理全攻略

攻略 时间处理在程序开发中相当常见,下面对于时间处理做一个简单的说明. 一.时间的表达方式时间在J2ME中有两种表达方式:1. 以和GMT1970年1月1号午夜12点和现在相差的毫秒数来代表这种方式适合比较两个时间之间的差值.2.  以对象的形式来表达二.时间处理的相关类时间处理在J2ME中涉及三个类:1.  System类long time = System. currentTimeMillis();使用该方法可以获得当前时间,时间的表达方式为上面提到的第一种. 2.  Date类Date d