J2ME學習雜記二 -- CLDC

1. 2000 年5 月,Java Community Process(JCP)公佈了CLDC1.0 規範(即JSR30)

2. 對於CLDC,爲了迎合儘量多的設備支持,必須儘量縮小自己的需求。For CLDC, the number of requirements is minimized in order to maximize the number of platforms on which it can be implemented.

3. CLDC 的核心是虛擬機和核心類庫。

4. CLDC原本是Sun公司實驗室的一個項目,叫做”Spotless System”。該項目的初衷是研製可以運行在基於Palm OS操作系統平臺的電子設備系列。該項目最成功的地方就是移動虛擬機(KVM)。

5. “Spotless System”的虛擬機被改寫並且成爲適合在CLDC設備中使用的版本,被稱爲”Kuaui VM”。今天的KVM這個名稱中,按照實際連接受限設備的運行情況,字母K代表了kilobyte中的”kilo”,以強調程序運行過程中,資源的佔用情 況是至關重要的。

6. 設備製造商不是支持CLDC和相應的Profiles,而是要使他們的產品支持KVM。Manufacturers of devices that support CLDC and its profiles are not, however, required to base their products around KVM.

7. KVM虛擬機要求實現Java完全的語言支持,除去以下幾點不必實現:不支持浮點運算(Floating point);無對象的finalization(Object finalization)和弱引用(Weak references);不支持JNI (the Java Native Interface ),Reflection 和其它依賴它們的低級接口(如debugging);不支持用戶定義的類裝載器(Class loading);5.不支持線程組(thread groups)或守護線程(daemon threads),僅僅支持規則的線程;運行時的錯誤採樣實現的方式處理。

8. KVM 在沙箱中運行應用程序,以確保其不會對設備進行破壞。在沙箱中,只有系統已定義的配置(configuration)、簡表(profile)、可選包以 及設備支持的一些類可以被應用程序訪問。任何沒有預先定義類庫和資源都不允許訪問,以防程序中的惡意代碼對沙箱外的資源(如操作系統、硬盤等)非法訪問或 者破壞。A CLDC VM runs application code in a “sandbox” environment that ensures it cannot maliciously damage the device on which it is executing.

9. Each CLDC implementation has its own class loader that can load classes from whatever location or locations the host device can support, typically over a network or from device local storage, if there is any.

10. CLDC 專門定義了其特有的預審覈機制。Phase 1: 預審覈 Pre-verification (off-device); Phase 2: 運行時審覈 In-device verification.

11. 預審覈在class文件被裝載到設備之前運行。審覈結果會被轉載到clsaa文件中,以在運行時刻可以便隨被訪問。Preverification is performed on class files before they are installed on the target device.The results of the preverification step arerecorded in the class file, where they can be accessed at runtime.

12. 在CLDC 的預審覈機制中,要下載的Java 類文件的每一個方法都包含了一個堆棧映射屬性,這個屬性是CLDC 獨有的,J2SE 規範中沒有定義。堆棧映射的屬性會通過虛擬機的預審覈器添加到標準的類文件中,該預審覈器會分析類中的每一個方法。堆棧映射屬性通常會增加約5%的類的大 小。

13. 類的審覈機制僅僅針對於外來的類文件(比如從網絡上下載的),而對本地文件系統中的類的加載是不用審覈的。

14. 在CLDC/MIDP 環境下開發程序,其程序經過編譯後,必須經過預審覈後才能運行。

備註:以上針對CLDC1.0

Technorati : cldc, iplinger, j2me, kvm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章