WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章J2ME技术J2ME基础J2ME结构与相关规范介绍

J2ME结构与相关规范介绍
作者:闻怡洋  来源:vchelp.net  发布时间:2005-9-6 10:19:13

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的两类设备的配置的简称,分别是:

l CDC (Connected Device Configuration,连接设备配置),运行在这一配置上的程序称为J2ME Application,在CVM上进行解释。

l 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 针对的设备主要是数字电视、机顶盒、网络电话、车载计算设备等。这些设备的特点是:

l 有线连接

l 电源稳定

l 设备外设资源比较受限

CLDC设备的最低配置为:CPU为16位、32位主频在 16MHz以上的处理器,设备的内存比较少,可能只有512KB,甚至更少。现在硬件的发展非常快,以前所定义的CLDC的设备目前的设备甚至远远超过原来的定义。不过请注意一下,J2ME 对CLDC设备配置的定义只是一个最低要求的定义。其实目前很多CLDC设备的配置都远远超过上面的配置,不过要分辨CLDC设备主要要从设备特点上进行区别。这些设备的特点是:

l 无线连接

l 没有稳定的电源供应(通常使用电池)

l 设备外设资源极少

具体一点说如智能手机,例如: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 必须还是通过简表来提供。

下面介绍一下几种常见的简表:

l MIDP (Mobile Information Devices Profile,移动信息设备简表):定义了移动信息设备的类型和提供相关的API集合, MIDP 所定义的功能更加面向用户,而且比 CLDC 更高级。

l IMP (Information Device Profile,信息模块简表):定义了提供网络连接,但是显示方式比较单一的设备简表,例如告警器。

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

l Personal Profile(个人简表):针对那些资源相对有限,但是对网络访问要求很高,基于AWT图形界面的设备,例如Web-TV、汽车导航系统等。

除这里提到的三个简表外还有其他类型的简表,但是上面的四个简表是Sun公司所推荐的,而且是开放的简表。例如以前的KJava就是和MIDP 类似的简表。

J2ME内定义的各种规范介绍

到目前为止,本文一共提到了几个规范:

l CLDC 规范:目前分为 v1.0 JSR 30,v1.1 JSR 139

l CDC 规范:目前分为 v1.0 JSR 36,v1.1 JSR 218

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

l IMP 规范:JSR 195

l FP 规范:JSR 46

l 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中文件、通信录等存取的支持

[1] [2]  下一页

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码