天天看点

J2ME CLDC 详解

[size=small][color=orange]CLDC 详解:

CLDC 是第一个面向移动设备大的JAVA 应用开发规范,也是J2ME核心配置中的一个,可以支持一个或多个简表,其目标主要面向小型的,网络连接有限的设备,如:手机,机顶盒,PDA速度慢,能源有限且资源等;

CLDC包括了两个部分:虚拟机和核心类库;

虚拟机:运行在设备的操作系统之上,对下层的硬件提供必要的兼容和支持

核心类库:操作系统所需的最小的软件需求;

CLDC包含的功能:

* Java 核心语言与Java虚拟机的特性

* 核心JAVA 类库

* 输入/输出

* 对网络的支持

* 对安全性的支持

* 对国际化的支持

CLDC 不包含的功能:

* 对应用程序生命周期的管理

* 用户界面

* 事件处理

* 高级应用程序模式

CLDC 的虚拟机----KVM

KVM 设备一般只有有限的内存空间和处理能力,KVM 使用C 重新编写(即:它不是现有的JAVA 虚拟机改进产品),另外,KVM 是模块化的,即:它是由模块构建的;

注:当每个模块实现了预先设定的目标后,就可以很方便的将这一模块卸载,以便节约宝贵的内存资源;

-------------标记清扫算法----------

问:什么是KVM?

KVM 不包含以下特性:

* 不支持浮点数据类型(Float 和double)

* 不支持JAVA 本地接口 java native interface

* 不支持用于自定义的Java级地类载入器

* 不支持反射(reflection)

* 不支持类的实例终结

* 不支持弱引用

* 有限的错误处理

问:什么是类载入器?反射?实例终结?弱引用?有限的错误处理?

CLDC中类的预审核机制:

* J2SE 提供了字节码的审核机制用于检查类文件的完整性。该审核机制是在编译时进行的,其目的是确保类文件中不包含可能破坏系统安全或Java 语言规范的恶意代码

* 所有本地变量在使用前必须初始化

* 在构造对象时,其构造函数必须在该对象被使用前调用;

* 每个对象的构造方法都必须调用父类的构造方法;

* 本地变量,实例和静态成员在声明时指明的对象类型必须与实际赋值的对象类型一致;

CLDC 的类库:

* 绝大部分虚拟机不支持的错误类和部分异常被去掉了

* 不支持float 和double 数据类型及相应的类

* 设有ClassLoader ,SecurityManager 等CLDC规范上没有说明必须支持的 类;

* CLDC支持的数据类型:boolean,byte,char,integer,long,short,String

MIDP 移动信息设备简表:

* 软件系统的最小需求假设;

* 用于控制底层硬件的最小内核。这个内核必须提供至少一个可运行实体去运行的虚拟机。内核不需要支持独立的地址空间,也不需要保证任何实时功能。

* 对非易失存储器进行读写的机制。

* 对无网络的读写访问,以便提供API支持

* 定时机制,提供保存记录的时间戳

* 基本显示位图的能力

* 能控制应用程序生命周期的机制

MIDP API 的范围:

* 应用程序模型

* 用户界面支持

* 网络支持

* 持久化存储支持

* 声音

* 2D游戏

* 通过HTTPS 和安全套接字的端对端的安全性

* MIDP签名模型提供的附加安全性;

* 应用程序的递送和安装; [/color][/size]