快捷搜索:

J2ME结构与相关规范介绍

J2ME布局与相关规范先容

J2ME的适用范围很广,而且针对J2ME的规范也在增添,很多人由于对各类规范的感化不懂得造成对J2ME体系的误解。本文主要讲述一下 J2ME 的布局和构成,同时对一些轻易肴杂的观点进行解释。

J2ME是什么?

很多人把J2ME等同于手机法度榜样开拓,着实这是一个异常差错的说法。也有人觉得J2ME是一个标准,一个规范,这同样是不精确的。

Sun 公司将 J2ME (Java 2 Micro Edition,Java 2微型版)定义为一种以广泛的破费性产品为目标的、高度优化的 Java 运行时情况。自从 1999 年 6 月在 JavaOne Developer Conference 上声明之后,J2ME 进入了小型设备开拓的行列。经由过程 Java 的特点,遵照 J2ME 规范开拓的 Java 法度榜样可以运行在各类不合的小型设备上。

J2ME是Sun公司为嵌入式开拓所定义的一个框架,一系列标准的规范所组成。以是J2ME是一个协议簇,而不是单一的规范。

J2ME是一个异常大年夜的观点,下面的一幅图可以看看J2ME的适用范围。

图1

图中的CDC 和CLDC 是支持J2ME的两类设备的设置设置设备摆设摆设的简称,分手是:

CDC (Connected Device Configuration,连接设备设置设置设备摆设摆设),运行在这一设置设置设备摆设摆设上的法度榜样称为J2ME Application,在CVM长进行解释。

CLDC(Connected Limited Device Configuration,连接限定设备设置设置设备摆设摆设),运行在这一设置设置设备摆设摆设上的法度榜样称为MIDlet ,在KVM长进行解释。

可以把CDC 和CLDC 理解为对硬件的定义,就犹如PC机和小型机一样,这些设备供给Java法度榜样运行的硬件情况。

在 J2ME 中有两类虚拟机:CVM (C Virtual Machine,C虚拟机)与 KVM (K Virtual Machine,K虚拟机)。KVM 和 CVM均可被看作是一种 Java 虚拟机,是 JVM 的子集,在功能上都是 JVM 的缩减版。这两类虚拟机的适用范围并不相同,简单地说,CVM 的功能比KVM 功能更为强大年夜。

这里再弥补一点,J2ME还包括对了Java Card 的定义,用于种种IC卡。JavaCard 和CDC/CLDC在J2ME中是相同的职位地方。

JavaCard 的网页见:http://java.sun.com/products/javacard/index.jsp 。

以是在这里要理解J2ME的含义,就可以从CLDC 和CDC这两方面进行懂得。

CLDC 与CDC的比较

在前面的图1中已经显示出CLDC 和CDC在适用设备上的差别。

CDC主要针对32位的处置惩罚器主频平日在75MHz以上,内存可能在1~4MB 。CDC 针对的设备主如果数字电视、机顶盒、收集电话、车载谋略设备等。这些设备的特征是:

有线连接

电源稳定

设备外设资本对照受限

CLDC设备的最低设置设置设备摆设摆设为:CPU为16位、32位主频在 16MHz以上的处置惩罚器,设备的内存对照少,可能只有512KB,以致更少。现在硬件的成长异常快,曩昔所定义的CLDC的设备今朝的设备以致远远跨越原本的定义。不过请留意一下,J2ME 对CLDC设备设置设置设备摆设摆设的定义只是一个最低要求的定义。着实今朝很多CLDC设备的设置设置设备摆设摆设都远远跨越上面的设置设置设备摆设摆设,不过要分辨CLDC设备主要要从设备特征长进行差别。这些设备的特征是:

无线连接

没有稳定的电源供应(平日应用电池)

设备外设资本极少

详细一点说如智妙手机,例如:Nokia 7650,Nokia 3650等,还有例如PDA设备也都应该归于CLDC的范围。

简表

J2ME 应用设置设置设备摆设摆设(CDC或CLDC)和简表(Profile)定制JRE(Java Runtime Environment, Java 运行时情况)。一个完备的 JRE由设置设置设备摆设摆设和简表组成,设置设置设备摆设摆设抉择了所应用的 JVM(可能是CVM 或 KVM),而简表经由过程定义特定的类来为利用法度榜样供给功能上的支持,一个简表定义了设备所供给的 API 聚拢。

假如把CDC 、CLDC 理解称为硬件设置设置设备摆设摆设的话,Profile可以理解为硬件上的操作系统,这个操作系统供给了法度榜样可以调用的所有功能聚拢,也便是说Profile定义了各类功能的 API 函数集。当然这个比喻并不完全恰当,由于CVM 和 KVM 才充当相识释Java法度榜样履行的角色。又或者可以把Profile理解称为虚拟机上供给的开拓包,不合的开拓包供给不合的核心功能调用。不管怎么理解都好,只要便于自己理解。

这里再弥补阐明一点:CDC规范和CLDC规范中也都定义了基础的API聚拢,这些API供给Java 的基础功能,例如:java.io、java.lang、java.util 、javax.microedition.io 这些包便是定义与CDC 和CLDC中的。不过这些包都是Java最基础的功能,更多的面向设备的功能性 API 必须照样经由过程简表来供给。

下面先容一下几种常见的简表:

MIDP (Mobile Information Devices Profile,移动信息设备简表):定义了移动信息设备的类型和供给相关的API聚拢, MIDP 所定义的功能加倍面向用户,而且比 CLDC 更高档。

IMP (Mobile Information Device Profile,信息模块简表):定义了供给收集连接,然则显示要领对照单一的设备简表,例如告警器。

Foundation Profile(根基简表):供给除了用户界面以外 J2SE 所能够供给的标准类库。

Personal Profile(小我简表):针对那些资本相对有限,然则对收集造访要求很高,基于AWT图形界面的设备,例如Web-TV、汽车导航系统等。

除这里提到的三个简表外还有其他类型的简表,然则上面的四个简表是Sun公司所保举的,而且是开放的简表。例如曩昔的KJava便是和MIDP 类似的简表。

J2ME内定义的各类规范先容

到今朝为止,本文一共提到了几个规范:

CLDC 规范:今朝分为 v1.0 JSR 30,v1.1 JSR 139

CDC 规范:今朝分为 v1.0 JSR 36,v1.1 JSR 218

MIDP 规范:分为 v1.0 JSR 37,v2.0 JSR 118

IMP 规范:JSR 195

FP 规范:JSR 46

PP 规范:JSR 62

这些规范都是J2ME中的根基规范,例如说CLDC 设备必须要支持 CLDC规范,同时要选择支持一个简表规范,可能是MIDP 或者其他简表。对付CDC 设备来说也必须支持 CDC 规范,同时选择支持一个简表规范,可能是FP,也可能是PP。

对付其他规范,设备可以选择支持。接下来我引用一下Sun公司J2ME主页对各类规范的先容:

适用于CLDC设备的规范:

Connected Limited Device Configuration (CLDC); JSR 30, JSR 139 CLDC 规范,前面已经先容过

Mobile Information Device Profile (MIDP); JSR 37, JSR 118 MIDP 规范,前面已经先容过

Information Module Profile (IMP), JSR 195 IMP 规范,前面已经先容过

Java Technology for the Wireless Industry (JTWI), JSR 185 无线Java行业规范

Wireless Messaging API (WMA); JSR 120, JSR 205 无线信息规范,供给短信和彩信功能

Mobile Media API (MMAPI); JSR 135 移动媒体规范,供给音频视频播放

Location API for J2ME (JSR-179) 定位规范,供给定位功能

SIP API for J2ME (JSR-180) 供给对会话提议协议的支持

Security and Trust Services API for J2ME (JSR-177) 供给收集安然与相信的支持

Mobile 3D Graphics (JSR-184) 供给对3D绘图的支持

J2ME Web Services APIs (WSA), JSR 172 供给对Web Services的支持

Bluetooth API (JSR-82, Motorola, Java Partner Site) 供给对兰牙的支持

PDA Optional Packages for the J2ME Platform (JSR 75)供给对PDA中文件、通信录等存取的支持

适用于CDC设备的规范:

Connected Device Configuration (CDC); JSR 36, JSR 218 CDC规范,前面已经先容过

Foundation Profile (FP) (JSR-46) FP 规范,前面已经先容过

Personal Profile (PP) (JSR-62) PP 规范,前面已经先容过

Personal Basis Profile (PBP) (JSR-129) 类似于PP的规范,但在图形界面方面无需支持AWT

J2ME RMI Optional Package, (RMI OP); JSR 66 供给对远程调用的支持

JDBC Optional Package for CDC/Foundation Profile API (JSR-169) 供给对JDBC的支持

同时请大年夜家留意一下,这里提到的适用于并不是表示只适用于,很多规范是可以同时适用于CDC 和CLDC 设备的。

J2ME的副感化:进级你的系统

这真是一个苦楚的工作!J2ME 中各类规范正处于一个赓续扩充和赓续完善的历程,旧设备无法支持新规范的工作会越来越多,而嵌入式设备的种类多很难在短光阴内实现对各类规范的支持。

相关网页

Java Community Process:http://jcp.org/ ;

Sun公司 J2ME 主页:http://java.sun.com/j2me/

Sun公司 J2ME 下载页:http://java.sun.com/j2me/downloads/index.html ;

支持J2ME的设备列表:http://developers.sun.com/techtopics/mobility/device/

对一些问题的见地

J2ME 很简单

完全差错,J2ME的范围和规模异常之大年夜,适用范围也异常广。要知道嵌入式设备无论从种类照样布局来将都要远远越过PC机,小型机的范围。

觉得J2ME简单的人,多数是把J2ME过于详细化。例如:觉得手机法度榜样的开拓便是J2ME开拓的整个。或者觉得在PDA上开拓一个Java法度榜样便是J2ME开拓的整个。

KJava法度榜样开拓便是手机法度榜样开拓

KJava 也是一个Profile,和前面提到的MIDP的功能和感化类似。曩昔KJava是Sun公司供给的一个示范性简表。然则因为事实缘故原由现在很多智妙手机都支持KJava简表,和MIDP比拟 MIDP是一个更开放的规范。

J2ME只能用于手机法度榜样开拓

今朝看来J2ME还没有能够周全的渗透到各类嵌入设备中,而且今朝最大年夜的用途便是一些手机游戏。然则J2ME的用途绝对不止这些,J2ME 利用的成长有赖于各类硬件厂商供给的支持。

J2ME已经可以作为嵌入设备上操作系统

Java法度榜样是解释履行的,以是必须还要有操作系统的支持。Palm OS、WinCE、Symbian的 EPOC、嵌入Linux这些才是操作系统,而且在嵌入式智能设备上利用对照广泛。至于JavaPhone之类的纯Java产品还有待Sun公司的开拓。1997年,Sun公司吞并了经久从事嵌入式实时操作系统开拓的Chorus公司,盼望为Java嵌入技巧的成长供给了优越的操作系统情况。今后应该会呈现只支持Java的硬件设备和操作系统。不过早年面提到的四种嵌入式操作系统来说,支持C/C++说话才是首位。

J2ME法度榜样可以实现一次编写到处运行

基础上很难。由于J2ME中定义的规范很多,每个规范有自己的API 集,不合的厂商还有自己供给的针对自身设备的 API集,而要求所有的嵌入设备都支持完全相同的规范聚拢是不现实的。以是使用厂家供给的 API 集开拓法度榜样还会维持一段相称长的光阴。

然则有些基础的规范是被强制要求的,例如CLDC 和MIDP 要求的API 集就要求所有的智妙手机支持。不过另一个方面讲纵然是相同的规范也会有不合的版本,不合的版本中对 API 集的要求是不合的。

在我看来 J2ME的最大年夜好处是把Java 带入了嵌入式设备这个领域,至少开拓职员可以应用相同的开拓模式来为嵌入式设备编写法度榜样。

您可能还会对下面的文章感兴趣: