|
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特别版本。
|