Java 2 Micro Edition (J2ME)是建立在一个由profiles,配置,虚拟机和主持操作系统等部分所组成的标准架构之上的。这 些内容组成了完整的J2ME实时运行环境。图A显示了这些部分是如何结合在一起的。J2ME提供了两种配置: Connected Limited Device Configuration (CLDC)和 the Connected Device Configuration (CDC)。这两种配置以设备的内存footprint为基础面向不同的设备类 型。


配置指定了最小的功能组和相关的Java 虚拟机 (JVM)应支持的Java类库。从概念上讲,配置层在虚拟机 (VM)的顶端运行,但当你使用一个例如CLDC和CDC的配置时,你也会涉及到相关的VM,因为二者是紧密相连的。

然而,应该注意的是在J2ME中,配置并不附属于一个特定的VM,他可以与其它的VM工作并支持所需的库。例如,CLDC也可以和应用指定基础功能的VM共同工作。关于细节,请见CLDC HotSpot应用虚拟机白页。

为了帮助你理解J2ME配置层所扮演的角色,我将对CLDC和CDC分别地进行阐述。

CLDC

CLDC 是针对少于512KB内存footprint的设备的配置。CLDC采用的是KVM,它是高度优化的JVM方式,他针对的是16比特或32比特的微处理 器,160到512 KB内存为基础的低端,网络连接,电池驱动的设备。典型的内存要求是128KB做有来存储KVM和相关的库。更多关于KVM的信息可 以从Sun公司的KVM白页中得到。

就网络化而言,CLDC针对的是有限的和间歇性的无线连接设备,所有在J2ME CLDC之上运行的 应用软件都应能在其他任何高端的Java VM上运行。当然,这需要CLDC库的支持。CLDC配置关注于I/O,网络化,安全问题,国际化问题和核心 Java库等相关的领域。

与事件处理,用户和应用程序的互动,应用程序生存期管理等内容相关的领域是由Profile来处理的。使用界面 定义(对于特定的设备,如传呼机,移动电话和PDA)也在Profile层的范围之内,它建立在顶端之上,并使用J2ME配置。 Mobile Information Device Profile (MIDP)是一个J2ME profile,它定义了使用CLDC配置设备的用 户界面相关的规范。

CLDC从J2SE获得绝大多数的类,但一些针对小内存footprint设备的新类并不是从J2SE APIs获得 的。关于类从J2SE 做继承和新CLDC类的具体信息,可参考CLDC规范1.0a版本的6.2和6.3中的内容。Java语言规范中的一些例外是没有 浮点支持,没有类实例的完成化支持和有限的错误处理能力。

在这里提到CLDC HotSpot应用也是具有相关性的,它相当于使用 CLDC配置的设备的KVM中Java VM的替换。根据Sun公司,CLDC HotSpot执行VM是一个高性能的JVM(32位,采用 CLDC v1.0规范)。他在相同的内存footprint上运行时提供比KVM高出一个数量级的更佳的性能。

CDC:完全Java平台

CDC是应用在具有较大内存,特别是2MB以上的设备上的,CDC针对有限和间歇的无线连接设备,CDC与CVM和Foundation profile共同定义了完全的J2ME环境。

CVM是为用户和嵌入设备设计的完全功能性JVM,它支持所有的Java 2 v1.3 VM安全防护,JNI, JVMDI, RMI,弱引用功能和库。本质上说,CVM具有所有一个驻留桌面系统的JVM所具有的功能。

CDC由J2SE中最小的Java数据包组成。Foundation profile由用户设备所需要的保持类库和APIs所组成。因此,如果你工作在一个以CDC为基础的J2ME环境下,你就需要更新你代码以使APIs更新换代。

CDC是CLDC的一个扩展集,所以在两种配置之间存在着向上的兼容性。CDC和Foundation profile也提供了对使用PersonalJava实时规范开发的应用程序的完全兼容。

总结

J2ME 模式体系使能了不同设备类别的“特别版”Java的创建。随着越来越多的设备制造商开始接受J2ME技术和J2ME设备使用范围的增大,更新的 J2ME profiles将得到应用。通过为开发以Java为基础的设备提供一个公共最小化平台,J2ME配置用结构化的方式使能了这些Java特别版 本。