本文向大家描述一下Java ME技术,Java ME以往称作J2ME,J2ME(Java2MicroEdition)是Java2的一个组成部分,它与J2SE、J2EE并称。根据Sun的定义:J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。
Java ME概念
J2ME(Java2MicroEdition)是Java2的一个组成部分,它与J2SE、J2EE并称。根据Sun的定义:J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。J2ME技术在1999年的JavaOneDeveloperConference大会上正式推出,它将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。
设计规格
J2ME在设计其规格的时候,遵循着「对于各种不同的装置而造出一个单一的开发系统是没有意义的事」这个基本原则。于是J2ME先将所有的嵌入式装置大体上区分为两种:一种是运算功能有限、电力供应也有限的嵌入式装置(比方说PDA、手机);另外一种则是运算能力相对较佳、并且在电力供应上相对比较充足的嵌入式装置(比方说冷气机、电冰箱、电视机顶盒(set-topbox))。因为这两种型态的嵌入式装置,所以Java引入了一个叫做Configuration的概念,然后把上述运算功能有限、电力有限的嵌入式装置定义在ConnectedLimitedDeviceConfiguration(CLDC)规格之中;而另外一种装置则规范为ConnectedDeviceConfiguration(CDC)规格。也就是说,J2ME先把所有的嵌入式装置利用Configuration的概念区隔成两种抽象的型态。
其实在这里大家可以把Configuration当作是J2ME对于两种类型嵌入式装置的规格,而这些规格之中定义了这些装置至少要符合的运算能力、供电能力、记忆体大小等规范,同时也定了一组在这些装置上执行的Java程序所能使用的类别函式库、这些规范之中所定义的类别函式库为Java标准核心类别函式库的子集合以及与该型态装置特性相符的扩充类别函式库。比方就CLDC的规范来说,可以支援的核心类别函式库为java.lang.*、javaio.*、java.util.*,而支援的扩充类别函式库为javamicroeditionio.*。区分出两种主要的Configuration之後,J2ME接著在定义出Profile的概念。Profile是架构在Configuration之上的规格。之所以有Profile的概念,是为了要更明确地区分出各种嵌入式装置上Java程序该如何开发以及它们应该具有哪些功能。因此Profile之中定义了与特定嵌入式装置非常相关的扩充类别函式库,而Java程序在各种嵌入式装置上的使用者介面该如何呈现就是定义在Profile里头。Profile之中所定义的扩充类别函式库是根据底层Configuration内所定义的核心类别函式库所建立。
架构介绍
与J2SE和J2EE相比
与J2SE和J2EE相比,Java ME总体的的运行环境和目标更加多样化,但其中每一种产品的用途却更为单一,而且资源限制也更加严格。为了在达到标准化和兼容性的同时尽量满足不同方面的需求,J2ME的架构分为Configuration、Profile和OptionalPackages(可选包)。它们的组合取舍形成了具体的运行环境。
Configuration主要是对设备纵向的分类,分类依据包括存储和处理能力,其中定义了虚拟机特性和基本的类库。已经标准化的Configuration有-ConnectedLimitedDeviceConfiguration(CLDC)和ConnectedDeviceConfiguration(CDC)。
基础建立
Profile建立在Configuration基础之上,一起构成了完整的运行环境。它对设备横向分类,针对特定领域细分市场,内容主要包括特定用途的类库和API。CLDC上已经标准化的Profile有MobileInformationDeviceProfile(MIDP)和InformationModuleProfile(IMP),而CDC上标准化的Profile有FoundationProfile(FP)、PersonalBasisProfile(PBP)和PersonalProfile(PP)。
可选包独立于前面两者提供附加的、模块化的和更为多样化的功能。目前标准化的可选包包括数据库访问、多媒体、蓝牙等等。
开发工具
开发Java ME程序一般不需要特别的开发工具,开发者只需要装上JavaSDK及下载免费的SunJavaWirelessToolkit就可以开始编写Java ME程式,编译及测试,此外目前主要的IDE(Eclipse及NetBeans)都支持Java ME的开发,个别的手机开发商如Nokia及SonyEricsson都有自己的SDK,供开发者在开发出兼容于他们的平台的程序。
【编辑推荐】