J2me的基本概念
|
|
Author: Wupei | Date: 2007-02-22 |
View: 4479 |
J2ME开发 - 新手上路 | Digg:
2
|
|
本文主要介绍J2ME的基本概念。 1.名词 这里我列出一些常见的关键词,方便与下文参照.具体解释见后文.J2ME(Java2 Platform, Micro Edition) CLDC(Connected, Limited Device Configuration) MIDP(Mobile Information Device Profile) KVM(The K Virtual Machine) 2.背景 随着无线应用与嵌入式系统的愈来愈受到人们的重视,SUN也推出了J2ME来迎合这一趋势.(实际上道也不能算是新推出,熟悉Java历史的人都知道, java原先本是为了开发消费性电子产品而研制的.谁知,无心插柳柳成荫,因在网络应用上的出色表现而流行,以致现在的J2EE.EJB等等,发展地越来 越庞大。这次实质是杀了个回马枪。至于表现如何,还得拭目以待)sun认为,未来的信息设备将比我们今天的更为customizable 和 personal。这一点我们已经可以从手机和pda的流行程度看出。所以为了开发面向这些设备的applications。sun推出了J2ME (Java2 Platform, Micro Edition)。3.j2me的基本结构 j2me把设备分为两类,一种是联接设备( connected device),一种是有限联接设备(Connected, Limited Device)。前一种对应于那些有电源的,电力充裕,较大的设备。例如:电视机,冰箱等,后一种对应于主要使用电池,小型的设备,例如:手机,pda 等。这里我只涉及第二种,有限联接设备(Connected, Limited Device)。3.j2me的基本结构 sun把J2me分为两个部分:configuration 和 profile configuration包括虚拟机(virtual machine),核心的类库与API。configuration层定义一个java虚拟机的特性与java类库的最小子集。也就是 说,configuration层提供了开发人员一个最基础,最核心的Java平台。就像我前文提到的,j2me把设备分为两类,一种是联接 设备(connected device),一种是有限联接设备(Connected, Limited Device)。对应这两种设备就有了两种J2ME configuration。分别为CDC(Connected Device Con-figuration )和CLDC(Connected, Limited Device Configuration)。这里请注意,CDC使用经典的javaVM,而CLDC使用的是KVM(The K Virtual Machine)。 注:kvm是sun为使用16/32位RISC/CISC微处理器或控制器,并其可用内存为160kb~512kb 的的设备而开发的。 Profile
层也包含一组API,主要针对于特定的某一族系的设备而定义。profile层在特定的configuration层上实现,而我们程序员则负责在特定的
profile上编写应用程序。对于手机,pda等Connected, Limited
Device。它们的profile层称为MIDP(Mobile InformationDevice
Profile)。于是MIDP与CLDC合在一起就构成了一个完整的J2ME架构。 ┌───────┐┄┄┄┄┄┄┄
│MIDlet │ 应用程序 ├───────┤┈┈┈┈┈┈┈ │ MIDP │ proflie层 ├───────┤┄┄┄┄┄┄┄ │核心API │ configuration层 CLDC ├───────┤┄┄┄┄┄┄┄ │ KVM │ ├───────┤┈┄┄┄┄┄┄ │特定的硬件 │ └───────┘ 图1 J2ME的CLDC&MIDP架构
本节的部分内容译自J2ME White Paper,比较枯燥,但请记住,毕竟,正确的观念重于一切。 CLDC的目的
CLDC的范围
CLDC不包括的范围(即由MIDP解决的)
CLDC的安全性 低端的基于虚拟机的安全性由下载时对class文件的审核(verification)步骤来保证。(如果你写过并编译过MIDlet程 序,就会知道这一步是必须的。这里有一个概念就行了,我会在以后讲述如何创建MIDlet程序时,详细介绍具体的步骤)。 基于应用程序的安全性通过使每个应用程序分别运行在相对独立的封闭环境中来保证并且处于被保护的系统package中的类不能被应用程序重 载(overridded)。 对于Java语言支持的特殊的方面 CLDC总的来说是与Java语言完全兼容的,但需注意以下几点:
对于Java虚拟机(Java Virtual Machine)支持的特殊的方面 实质上CLDC在其严格的内存限制下达到了对Java虚拟机相当程度的兼容性。不过还是有下列不同点。
4。深入理解CLDC (part II) 本节的部分内容译自J2ME White Paper,比较枯燥,但请记住,毕竟,正确的观念重于一切。 类 文件审核过程(classfiles Verification) CLDC要求其下层的虚拟机能够辨别并拒绝非法的 class文件。但由于CLDC本身面向小内存消耗的小型设备这一前提。其类文件检测机制与J2SE中定义的标准类文件审核机制还有所不同。请注意看下 图: MyApp.java 请注意CLDC中的预审核(preverification)过程。这是CLDC 区别于通常的类文件审核过程的关键。如上图所示,当源程序被编译后,必须被预审核器预审核,然后才能被下载到目标设备上去。之所以有这一步骤,主要是为了 减轻KVM中审核器的负担,加快审核速度。就像我前文提到的,这是出于对 CLDC支持的硬件的考虑(毕竟手机和PDA并没有我们PC机那样奔腾的“芯”呀!^-^)。这里记住这个概念就行了。具体的操作方法我会在以后讲述编写 MIDlet程序时介绍。 类文件格式 sun要求通过 Jar(compressed Java Archive)给Java应用程序打包,这里也不例外。所以如果你想把你的MIDlet程序下载到设备上运行,你就得先用jar打包。具体的操作方法我 会在以后讲述编写MIDlet程序时介绍。 CLDC的类库 如果不严格的 说,CLDC的类库是J2SE的一个小的子集,有以下这种近似关系成立,即J2SE包含CDC包含CLDC。但要注意CLDC并未完全包含于 J2SE,它还包括一 些专门针对无线设施的类。所以可以把CLDC的类库简要划分为两部分:从J2SE继承的类和CLDC专有的类。 (1) 从J2SE继承的类 这部分包括三个package,即java.lang,java.util和java.io。注 意即使这些从J2SE继承的的类,也是大大“缩了水”的。例如java.util的类与接口由J2SE的47个缩减到10个。另外两个也有相应缩减。 系
统类 数据类型类 容器类
(container class) I/O 类 日期与时间类 附加的实用类 异常类(Exception Classes) 错误类 (2)CLDC专有的类 这 里sun提供了javax.microedition.io包。用它来提供与外界沟通的桥梁。(注:就像在J2SE中我们利用java.net.*)注 意,所有的连接都由javax.microedition.Connector创建。例如:你可以打开一个http连接通过 Connector.open("http://www.chinajavaworld.com") javax.microedition.io
的接口包括: 这里再说明一点,实际上你也可以看出,CLDC所包括的类库,并不足以开 发应用程序。例如,没有UI界面的支持等。这也正是CLDC的设计理念。CLDC本身就从未想过要解决所有的问题。这些问题要靠其上层的 Profile-MIDP来解决。例如javax.microedition.lcdui就是定义在 MIDP中的UI包。 更多阅读: |
|
| 最近更新 ( 2010-04-05 ) |
尚无评论发表