年移动开发恐怕成为了最时髦的字眼在最近一份调查显示有%的受访者涉足嵌入式/移动设备应用开发这个数字可能略高于实际的比例但也足可说明嵌入式/移动设备应用开发是一块诱人的新鲜奶酪JME是嵌入式/移动应用平台的王者Linux和WinCE分列二三位Nokia等厂商力推的Symbian平台目前开发者占有率尚未达到满意水平考虑到调查项合并了嵌入式设备(例如PDA)和移动设备(例如智能手机)SymbianWinCE系列在移动平台上会是竞争的主要两方如果厂商能在标准实现上做得更加规范则JME的跨平台特性会发挥得更加淋漓尽致继续保有王者地位 JME是SUN公司推出的针对嵌入式消费类电子产品的开发平台与JSE和JEE共同组成Java技术的三个重要的分支JME实际上是一系列规范的集合由JCP组织制定相关的JSR并发布各个厂商会按照规范在自己的产品上进行实现但是必须要通过TCK测试这样确保兼容性比如MIDP规范就是在JSR中制定的JME平台的形成颇有些Java技术回归起点的味道我们知道Java本来就是针对消费类电子产品而生的一门编程语言而后才慢慢发展为一门技术一个平台的 谈到JME我们通常都会说到一个词KVM而这可以认为是JME的起源KVM之父Antero Taivalsaari本来在SUN公司参与一个名叫Spotless的研究型项目由于他曾经有着在世界知名电信设备制造商工作的经历这使得他萌发了在移动终端设备比如手机上实现java虚拟机的想法而这得到了经理的支持随后AT做为领导者带领团队开发了能够在手机这样的移动终端设备上运行的虚拟机和CLDC核心类库慢慢的JME浮出了水面 JME的设计应该说是众多顶级工程师的结晶她被设计的非常灵活在JME中非常重要的两个概念是Configuration和ProfileConfiguration是支持最大范围设备的最小的平台在这一层还包括了Java虚拟机Profile是针对特定的设备提供相应的开发包集合另外针对某些设备特有的功能特性JME还推出了Optional Profile的概念比如Mobile Media API 在JME平台中有两个主要的Configuration一个是Connected Limited Device Configuration一个是Connected Device Configuration区分的标准则是按照设备的处理器内存联网能力等硬件特性由于这些规范制定比较早而现在的移动终端设备的处理和存储能力都有了质的飞跃因此不再列出区分的标准因为那已经没有了意义你甚至会认为那是错误的目前JME的应用主要还是基于CLDC的因此本文将主要向读者介绍基于CLDC的JME平台不过笔者在两家世界着名电信设备商参加的开发项目表明基于CDC的应用将慢慢占领主流市场因为CDC提供了更强大的类库支持 Mobile information Device Profile位于CLDC之上在CLDC规范制定出来后并没有引起开发者的广泛注意市场也没有因此而发生变化原因是CLDC中并没有提供图形用户界面编程的接口这样应用程序就没有和用户交互的能力了MIDP的推出受到了开发者的广泛关注在MIDP中提出了一种新的应用程序模型MIDlet开发者还可以用MIDP中提供的javaxmicroedtionlcdui包开发图形用户界面程序用MIDP的子系统Record Management System进行数据的持久性操作借助于CLDC中提供的Generic Connection Framework的联网能力可以通过HTTP协议访问Web服务器JME几乎无所不能 然而一些问题也慢慢暴露出来由于MIDP的规范制定得过于宽泛提供的功能有限导致各个厂商在实现MIDP的时候在功能特性上存在很多差异比如应用程序的大小RMS的存储空间并行存在的线程数量等等更糟糕的是各个厂商还实现了很多JME之外的功能例如Nokia UI API中提供了声音处理以及全屏等功能这样破坏了Java跨平台的特性如果你得程序中应用了Nokia UI API的话那么它就不能移植到Motorola的手机设备上了 为了弥补这些不足SUN在随后的MIDP中推出了MMAPI的一个子集来解决声音处理的不足并设计了一个独立的游戏开发包javaxmicroeditionlcduigame用于游戏开发还对pushsocket联网等特性提供了支持在JSR中更是推出Java Technology for the Wireless Industry使得规范更加严格提高了应用程序的兼容性不仅如此JME中的可选包更是各显神通Bluetooth APISIP API for JME和Mobile D Graphics都提供了非常强大的功能 JME的发展与竞争 软件环境飞速发展的同时JME平台的硬件环境和市场同样越来越成熟Java手机的数量在成倍增长预计年java手机数量有望突破亿部硬件中加快集成Java预计将进一步促进Java在市场中的普及JME将成为事实上的标准到年Java手机预计将占全部手机出货量的%与此同时移动增值业务的突飞猛进大大的推动了JME技术的发展预计到年全球与Java相关的移动增值业务市场总值将达到亿美元 年微软公司开始逐渐进入移动通信行业并与美国的电信设备制造商Motorola推出内置微软SmartPhone的手机打入手机市场另外高通的BREW和Nokia的Symbian也一直认为是JME的竞争对手不过目前他们的市场占有量都还很难和JME平台相比BREW的兼容性差是最大的缺点年中国联通不甘心受制于高通的限制而与SUN公司联手打造了UniJa平台笔者认为微软提供的Mobile Windows和Nokia的Symbian平台将是JME最大的竞争对手Symbian是目前最成熟的手机操作系统通过使用Nokia提供的SDK开发者可以使用Java或者C/C++进行应用程序的开发遗憾的是Symbian的开发资料相对贫乏C++语言的开发效率比Java要低 这些都给基于Symbian操作系统的C++开发的推广带来了不利的影响 国外的Motorola和国内的多普达等厂商陆续推出了基于微软SmartPhone操作系统的手机表明了微软进军移动开发市场的野心通过使用微软提供的SDK开发者可以在手机上使用Compact Net Framework进行高效的开发当然也可以使用C/C++然而毕竟微软刚刚进入移动开发市场市场占有率还不高 JME平台是开放的目前已经占领了绝对份额的市场我们有理由相信JME将继续成为移动开发的领导力量 |