- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
j2me搜集
j2me搜集
CLDC/MIDP的基本结构粗略的说j2me把设备分为两类,一种是联接设备( connected device),一种是有限联接设备(Connected, Limited Device)。前一种对应于那些有电源的,电力充裕,较大的设备。例如:电视机,冰箱等,后一种对应于主要使用电池,小型的设备,例如:手机,pda等。
这里我主要只涉及第二种,有限联接设备(Connected, Limited Device)。
sun把J2me的实现分为两层:configuration 和 profile。
configuration包括虚拟机(virtual machine),核心的类库与API。configuration层定义一个java虚拟机的特性与java类库的最小子集。也就是说,configuration层提供了开发人员一个最基础,最核心的Java平台。因为j2me把设备分为两类:联接设备(connected device)和有限联接设备(Connected, Limited Device)。对应这两种设备就有了两种J2ME configuration。分别为CDC(Connected Device Configuration)和CLDC(Connected, Limited Device Configuration)。这里请注意,CDC使用经典的javaVM,而CLDC使用的是KVM(The K Virtual Machine)。KVM是sun专门为使用16/32位RISC/CISC微处理器或控制器,并其可用内存为160kb~512kb的的设备而开发的。KVM比较小,通常只有128K或更少。
Profile层也包含一组API,主要针对于特定的某一族系的设备而定义。profile层在特定的
configuration层上实现,而我们程序员则负责在特定的profile上编写应用程序。对于手机,pda等Connected, Limited Device。它们的profile层称为MIDP(Mobile Information Device Profile)。于是MIDP与CLDC合在一起就构成了一个完整的J2ME架构。顺便说一句,对于MIDP上的应用程序sun也有独特的叫法,它们被称为MIDlet。你是不是觉得有点眼。想想java中的applet。
深入理解CLDC/MIDPCLDC的目的[li]
为小型的,且资源有限,Connected Limited的设备定义一个标准的Java平台。 [li]
允许动态的向这些设备发布内容与应用程序。[li]
方便第三方软件厂商与开发者向这些设备移植内容与应用程序。[/li]
CLDC的范围[li]
Java语言与虚拟机的特性 [li]
核心Java类库(如java.lang.*, java.util.*) [li]
输入/输出 [li]
对网络的支持[li]
对安全性的支持[li]
对国际化的支持[/li]
CLDC不包括的范围(即由MIDP解决的)[li]
对应用程序life-cycle的管理(就是指一个应用程序是如何安装,运行,删除的) [li]
UI界面(User Interface) [li]
Event处理 [li]
高级应用程序模式(这里指用户与应用程序的交互)。[/li]
CLDC的安全性
低端的基于虚拟机的安全性由下载时对class文件的审核(verification)步骤来保证。(如果你写过并编译过MIDlet程序,就会知道这一步是必须的。这里有一个概念就行了,我会在后面讲述如何创建MIDlet程序时,详细介绍具体的步骤)。基于应用程序的安全性通过使每个应用程序分别运行在相对独立的封闭环境中来保证并且处于被保护的系统package中的类不能被应用程序重载(overridded)。
对于Java语言支持的特殊方面
CLDC总的来说是与Java语言完全兼容的,但需注意以下几点:
不支持浮点数据类型(即没有float和double)(这实际上主要是由于CLDC所面向的设备,其硬件因其内存限制或是基于安全性的考虑不支持浮点运算)
不支持类实例(class instance)的终结(finalization),即不存Object.finalize()方法。(注:finalization指的是java中提供的有别与garbage collection的另外的一种对象清理方法。具体可参看侯捷老师译的Bruce Eckel的《Thinking in Java 第二版》,可以在中下载)
有限的错误处理,即大部分Java.lang.Error的子类都未被支持。与此相反,CLDC包括了相当完备的异常(exception)类。
对于Java虚拟机(Java Virtual Machine)
文档评论(0)