作者:郭嘉
Java ME(Java 2 Micro Edition)旨在向微型设备和嵌入式设备提供Java技术的优点。Java ME为这类设备提供了以下支持:
- 运行环境和API技术。
- 丰富的图形用户界面、存储、网络、安全和其他功能。
- 生成可移植代码,使应用能够在不同设备之间进行移植。
Java ME的整体架构如下图所示:
下面介绍以下每个层次的相关功能。
一 Java ME配置
Java ME配置定义的Java运行环境和API技术可以满足各种设备的需要,配置的定义基于设备在内存、显示、处理能力和网络连接性等方面的限制和特征。
当前的Java ME配置定义了两种配置类型。
1.1 连接设备配置
连接设备配置(CDC)针对的是具有TCP/IP网络连接性和较高带宽的高端消息设备。要求至少2MB内存供Java平台使用,如下图所示:
CDC定义了一个完整的JVM,它包括了标准桌面系统中Java运行环境的全部功能。用于调试本机代码(JNI)、连接调试器(JVMDI)和代码剖析(JVMPI)的低级接口是可选的。
CDC提供了和J2SE环境相同的安全模型和相关机制:
- 所有代码都在沙箱中运行,以避免用户系统面临风险,对于所有加载的类,都进行全面Java语言特性和字节码验证。
- JVM加载签名类时,要对其完整性和可信来源进行验证。
- 安全策略使用用户定义的权限和策略类集以提供对资源的细粒度的访问控制。
- 支持Java加密以保护程序、数据、通信和检索的安全。
1.2 连接受限设备配置
连接受限设备配置(CLDC)针对的是低端消费设备,只要求提供128~512kb的内存供Java平台和应用使用,CLDC只提供标准的JVM的部分功能和有限的API和支持库。
与J2SE的实现相比,J2ME不同之处在于:
- 受限的安全模型
- 新的类验证机制
- 不支持用户自定义类加载器
- 不支持线程组和守护线程
- 不支持弱引用
- 有限的错误处理功能
- 不支持终极化
- 不支持反射
- 新的网络连接框架
CLDC运行在K虚拟机上,关于底层KVM安全,不能让运行于KVM中的应用已任何方式危害设备,这种安全可以通过预验证过程来保证,验证过程如下图所示:
二 Java ME概要
Java ME概要定义了一组用于特定设备类型的Java API技术,该概要是在Java ME配置的基础上建立的。
2.1 移动信息设备概要
移动信息设备概要(MIDP)是为了计算能力有限且具有无限网络连接能力及用户输入和显示机制的设备而设计的。
MIDiet是设计成在移动设备上运行的J@ME应用。