这里向大家描述一下J2ME平台,J2ME各应用平台由Configuration(配置)和Profile(档次)来组成,配置是为JVM定义最小的能力和库,使JVM足够小并且能够运行在相同级别的设备上。
J2ME平台
J2ME是Java2这个平台专门针对家电类产品和嵌入式设备制定的。组成J2ME的Java虚拟机和API是与那些针对家电类产品和嵌入式产品的运行环境相匹配的。
J2ME针对小型设备设计,具有丰富的用户接口和网络交互模型,编程和可移植性好。
J2ME各应用平台由Configuration(配置)和Profile(档次)来组成,配置是为JVM定义最小的能力和库,使JVM足够小并且能够运行在相同级别的设备上。由于同一级别设备的配置对内存和处理能力的要求相近似,所以J2ME将所有的嵌入式应用设备大体上区分为两种:一种是运算功能有限、电源供应也有限的嵌入式设备如:PDA(PersonalDigitalAssistant:个人数字助理)和手机等,并把它们定义在CLDC规格之中;另外一种是运算能力相对较佳、并在电源供应上相对比较充足的嵌入式装置,并把它们规范为CDC规格。
档次基于Java技术的API集合,由不同功能的Java类库组成。档次构建在配置之上,作为配置的补充,为特定的设备提供足够的运行环境。档次是为了要更明确地区分出各种嵌入式设备上Java程序该如何开发,具有哪些功能。因此档次之中定义了与特定嵌入式设备非常相关的扩充类,而Java程序在各种嵌入式装置的应用接口该如何表达则通过档次的定义来实现。各档次中所定义的扩充类库是根据底层配置中所定义的核心类库建立。#p#
J2MECDC平台
CVM是构成CDC的基础,它在传统Java虚拟机基础上对Byte-Code解释器进行了改进,具有动态编译器功能,使运行Java程序更为有效和快速。CVM的运行环境需要大于2M字节的程序存储器和大于512字节的运行存储器。
1、CDC1.0具有如下特点
(1)支持异常类,Java.lang.Exception;
(2)映像API(包括Java.lang.reflect软件包);
(3)支持J2SE规格网络(Java.net);
(4)支持浮点数(包括Java.lang.Float、Java.lang.Double和Java.lang.StrictMath类);
(5)classloader类(Java.lang.ClassLoader);
(6)支持本地线程(Java.Jang.Process);
(7)串行化的类(Java.io.Serialiable和Java.io.Externalizable);
(8)文件系统支持;
(9)支持J2SE的Java.lang.ref、Java.math、Java.security、Java.security.dert、Java.text、Java.util.jar和Java.util.zip软件包。
2、J2MECDC平台中的三个档次和CDC相关
(1)FP(FoundationProfile:基本档次);
(2)PBP(PersonalBasisProfile:个性化基本档次);
(3)PP(PersonalProfile:个性化档次)。
这三个不同配置之间的关系如图2所示。其中每个上层模块都是在下层模块的基础上根据相应设备的需求进行功能扩展,也就是API扩展的。图2中的CVM是符合J2ME规范的JavaVM。
这些模块的主要差别在于:J2MECDC定义了这类设备所必须的最小的运行环境,使得应用系统能够正常启动和运行。任何一个基于CDC的应用系统如果要完成一个实际的任务,只有配置是不够的,至少需要包括基本的核心功能,才能完成特定的任务。FP确定了Java平台功能的核心组件,但是FP缺乏对GUI支持,适合于不需要图形显示的设备。PBP在FP基础之上提供了一个简化的GUI,它保留了图形的ComponentFramewoek(组件框架),去掉那些重量级的图形模块,成为抽象图形工具AWT的一个子集。PBP主要适用于那些对图形件复杂度要求不高的娱乐装置(如:游戏机、数字电视机顶盒、汽车电器等等)。PP在FP基础之上进一步扩充了PBP的功能,全面支持AWT、Applet和JavaBeans,同时也完全兼容PersonalJava1.3,PP实际上是PersonalJava的一个替代规格。PP档次主要适用于移动Internet浏览设备、高端PDA及移动电话、需连接Internet的机顶盒(如MHP1.1)等。
作为数字电视中间件的Java平台,因为要支持Internet类型的内容,其图形要求较强,因此需要选择PP档次。
3、FP1.0
FP是在配置的基础之土,遵循J2SE1.3规范,满足那些支持J2SE标准API子集的设备需求而扩展的API集合。其扩展的功能主要包括:
(1)支持TCP;
(2)支持Java.text.resources;
(3)增强安全体系的支持,如:Java.security.acl,Java.seemty.spec;
(4)增加了代码签名等功能;
(5)完善了对zip的支持。
4、PBP1.0
PBP在FP的基础之上提供了一个简化的对GUI的支持,它的主要特点是:
(1)支持简化的AWT;
(2)遵循JavaBeans的规范;
(3)定义了两种不同的程序运行模型。
5、PP1.0
PP是为那些需要使用AWT框架的应用程序准备的。PP以FP为基础,是J2SE1.3.1的子集,它的主要特点是:
(1)支持AWT;
(2)支持webapplets;
(3)为PersonalJava的应用程序提供相应的运行环境;
(4)遵循JavaBeans的规范;
(5)在运行模型中加入了Applet支持。
J2MECLDC平台
CLDC适用于一些硬件资源有限的接收机,J2ME规范中,CLDC主要是针对运算功能有限、电力供应也有限的嵌入式装置(如PDA、手机)定义的。它所需要的运行资源在CPU处理能力、内存、网络带宽和电源等方面的资源需求要低于CDC对资源的需求。
1、用J2MECLDC写成的应用业务程序的特点
(1)可在微小型KVM上运行;
(2)使Javaapplet成为可移植的、可下载的和安全的;
(3)同JavaScript应用程序相比,Javaapplet可以更有效的利用内存;
(4)使得Java用户具有***的可扩充性;
(5)开发者可脱离基于PC的Java开发环境使用其内容。
2、CLDC的局限性
CLDC为了减少对各种运行资源的需求,进行了大量的裁剪和改动。它存在如下的局限性:
(1)不支持浮点数;
(2)不支持输入/输出(File、FileInputStream等);
(3)不支持AWT。
【编辑推荐】