【IT168 技术文档】在前面提到的这些操作系统平台中,Palm OS上已经有了MIDP的参考实现,但是并不是最适合PDA的Profile。Symbian实现了CLDC和MIDP,作为智能手机的操作系统,是理想的MIDP应用平台。在Compaq的iPaq上已经实现了CDC(基于Pocket PC),另外前面提到过,IBM的WebSphere Micro Environment在Pocket PC上实现了CLDC,CDC和MIDP。Sharp的Zaurus实现了Personal Java(基于Linux)。可以看到,在硬件条件较好的PDA上(Pocket PC和Zaurus都使用Intel Arm CPU,比Palm使用的Motorola DragonBall系列性能要高得多)都可以实现CDC的标准。由于这些主要操作系统平台都是开放的,基本可以相信,主要的移动信息设备操作系统都将一直提供J2ME的支持,但是具体支持哪个标准则并不一定死板地按照CLDC和CDC的最初定义,和设备的硬件条件和厂商的选择有关,或者可能同时实现多个标准。
关于移动信息设备上J2ME应用的具体开发,现有的文章和技术基本分为以下几类:
◆采用早期的KVM和com.sun.kjava包,或者加上第三方的k awt类库。有很多早期的文章和代码,但是这一技术将被PDA Profile取代,而且不保证兼容性,不建议开发者采用这一方法,而是等待PDA Profile的最后完成及其实现。
◆采用CLDC和MIDP开发。由于MIDP标准发布较早,智能手机的市场也远比PDA大得多,这是目前大量的无线应用文章的主要内容,不过它最适合的目标是智能手机,虽然智能手机可能有一定的PDA的功能,但是这一技术并不是最适合PDA的,开发者需要考虑清楚。
◆采用CDC和Personal Profile,这样的文章不太多见,目前的移动信息设备硬件能力还有所不足。但是下一代的PDA和智能手机肯定可以支持。
就现有的PDA硬件条件而言,J2ME应用要和已有的应用竞争还有比较多的困难:
◆空间:现在一般的Palm类设备内存从2M到16M不等(目前较高档的机型都已支持扩展卡,可以扩展到128M,但是卡上运行程序的速度要慢得多,一般主要用来放数据,运行程序不能依赖于卡),Palm上一般现有程序的标准大小是几十K到300K以下。而仅MIDP的Palm参考实现库在Palm上就需要将近600K,再加上作为基础的CLDC库,加上程序,就快要接近1M了。和已有的应用相比,目前是没有太大竞争力的。
◆速度:由于Palm一直信奉的是“简单就是美”的原则,目前的Palm系列PDA主要用的是33MHz的Motorola 68000系列DragonBall,这虽然带来了成本的降低和节电性,但J2ME应用的性能很难让人满意了。作者在自己的Palm m100(入门机型,但是Palm系列各机型的CPU速度基本上是一样的)测试过一些演示程序,一般都有两三秒钟的启动延迟。
◆功能:目前最适合Palm的PDA Profile尚未完成,如果用MIDP开发则不太合适,用早期的KVM和com.sun.kjava则因为不是J2ME标准,程序兼容性无法保证。
虽然如此,但是在移动信息设备上开发J2ME应用的前景还是非常美好的:
◆硬件的发展:目前的Palm配8M到16M内存已经是主流,下一代超过32M是必然的趋势。Palm OS 5终于开始支持32位的ARM RISC处理器,其速度应该能够提高10倍以上。事实上,Sharp公司今年第一季度发售的Zaurus SL-5500已经采用了Intel 206MHz StrongARM处理器和64M内存,在这样的硬件上速度和内存都不会成为问题。
◆标准的完善:PDA Profile今年内将最后完成,可以预计很快会在主要操作系统上得到实现。目前在JCP也有许多其他标准非常有意义,例如关于蓝牙技术(Bluetooth),游戏,定位等等。
◆平台的广泛性:移动信息设备的主要操作系统平台都是开放的,J2ME的标准也是开放的,因此基本上所有的主要操作系统平台都支持或将支持J2ME,这带来的广阔市场(智能手机的市场尤其巨大,据称Norkia到今年就可以出货5000万只Java手机,而到2008年可达1亿只。)和真正的“一次编写,到处运行”是任何其他技术无法比拟的。对于开发者而言,可以不受操作系统的限制,不用担心在这个多变的市场上因平台的变化而影响自己的应用。
◆开发的方便性:J2ME虽然和J2SE有着许多不同,但仍然属于Java技术,具有Java方便开发的优点,也使得Java程序员学习移动信息设备开发没有太大困难(事实上,我认为开发J2ME应用的主要困难不在于具体编码,而在于标准的复杂性)。