J2ME学习杂记二 -- CLDC

来源:互联网 发布:less.min.js下载 编辑:程序博客网 时间:2024/04/20 07:06

1. 2000 年5 月,Java Community Process(JCP)公布了CLDC1.0 规范(即JSR30)

2.对于CLDC,为了迎合尽量多的设备支持,必须尽量缩小自己的需求。For CLDC, the number of requirements isminimized in order to maximize the number of platforms on which it canbe implemented.

3. CLDC 的核心是虚拟机和核心类库。

4. CLDC原本是Sun公司实验室的一个项目,叫做”Spotless System”。该项目的初衷是研制可以运行在基于Palm OS操作系统平台的电子设备系列。该项目最成功的地方就是移动虚拟机(KVM)。

5.“Spotless System”的虚拟机被改写并且成为适合在CLDC设备中使用的版本,被称为”KuauiVM”。今天的KVM这个名称中,按照实际连接受限设备的运行情况,字母K代表了kilobyte中的”kilo”,以强调程序运行过程中,资源的占用情况是至关重要的。

6.设备制造商不是支持CLDC和相应的Profiles,而是要使他们的产品支持KVM。Manufacturers of devices thatsupport CLDC and its profiles are not, however, required to base theirproducts around KVM.

7.KVM虚拟机要求实现Java完全的语言支持,除去以下几点不必实现:不支持浮点运算(Floatingpoint);无对象的finalization(Object finalization)和弱引用(Weakreferences);不支持JNI (the Java Native Interface ),Reflection和其它依赖它们的低级接口(如debugging);不支持用户定义的类装载器(Class loading);5.不支持线程组(threadgroups)或守护线程(daemon threads),仅仅支持规则的线程;运行时的错误采样实现的方式处理。

8. KVM在沙箱中运行应用程序,以确保其不会对设备进行破坏。在沙箱中,只有系统已定义的配置(configuration)、简表(profile)、可选包以及设备支持的一些类可以被应用程序访问。任何没有预先定义类库和资源都不允许访问,以防程序中的恶意代码对沙箱外的资源(如操作系统、硬盘等)非法访问或者破坏。A CLDC VM runs application code in a “sandbox” environment thatensures it cannot maliciously damage the device on which it isexecuting.

9. Each CLDC implementation has its own class loaderthat can load classes from whatever location or locations the hostdevice can support, typically over a network or from device localstorage, if there is any.

10. CLDC 专门定义了其特有的预审核机制。Phase 1: 预审核 Pre-verification (off-device); Phase 2: 运行时审核 In-device verification.

11.预审核在class文件被装载到设备之前运行。审核结果会被转载到clsaa文件中,以在运行时刻可以便随被访问。Preverificationis performed on class files before they are installed on the targetdevice.The results of the preverification step arerecorded in the classfile, where they can be accessed at runtime.

12. 在CLDC的预审核机制中,要下载的Java 类文件的每一个方法都包含了一个堆栈映射属性,这个属性是CLDC 独有的,J2SE规范中没有定义。堆栈映射的属性会通过虚拟机的预审核器添加到标准的类文件中,该预审核器会分析类中的每一个方法。堆栈映射属性通常会增加约5%的类的大小。

13. 类的审核机制仅仅针对于外来的类文件(比如从网络上下载的),而对本地文件系统中的类的加载是不用审核的。

14. 在CLDC/MIDP 环境下开发程序,其程序经过编译后,必须经过预审核后才能运行。

备注:以上针对CLDC1.0

Technorati : cldc, iplinger, j2me, kvm