Java 2 Micro Edition (J2ME)是建立在一個由profiles,配置,虛擬機和主持操作系統等部分所組成的標准架構之上的。這些內容組成了完整的J2ME實時運行環境。圖A顯示了這些部分是如何結合在一起的。J2ME提供了兩種配置:Connected Limited Device Configuration (CLDC)和the Connected Device Configuration (CDC)。這兩種配置以設備的內存footprint為基礎面向不同的設備類型。
配置指定了最小的功能組和相關的Java 虛擬機 (JVM)應支持的Java類庫。從概念上講,配置層在虛擬機 (VM)的頂端運行,但當你使用一個例如CLDC和CDC的配置時,你也會涉及到相關的VM,因為二者是緊密相連的。
然而,應該注重的是在J2ME中,配置並不附屬於一個特定的VM,他可以與其它的VM工作並支持所需的庫。例如,CLDC也可以和應用指定基礎功能的VM共同工作。關於細節,請見CLDC HotSpot應用虛擬機白頁。
為了幫助你理解J2ME配置層所扮演的角色,我將對CLDC和CDC分別地進行闡述。
CLDC
CLDC是針對少於512KB內存footprint的設備的配置。CLDC采用的是KVM,它是高度優化的JVM方式,他針對的是16比特或32比特的微處理器,160到512 KB內存為基礎的低端,網絡連接,電池驅動的設備。典型的內存要求是128KB做有來存儲KVM和相關的庫。更多關於KVM的信息可以從Sun公司的KVM白頁中得到。
就網絡化而言,CLDC針對的是有限的和間歇性的無線連接設備,所有在J2ME CLDC之上運行的應用軟件都應能在其他任何高端的Java VM上運行。當然,這需要CLDC庫的支持。CLDC配置關注於I/O,網絡化,安全問題,國際化問題和核心Java庫等相關的領域。
與事件處理,用戶和應用程序的互動,應用程序生存期治理等內容相關的領域是由Profile來處理的。使用界面定義(對於特定的設備,如傳呼機,移動電話和PDA)也在Profile層的范圍之內,它建立在頂端之上,並使用J2ME配置。Mobile Information Device Profile (MIDP)是一個J2ME profile,它定義了使用CLDC配置設備的用戶界面相關的規范。
CLDC從J2SE獲得絕大多數的類,但一些針對小內存footprint設備的新類並不是從J2SE APIs獲得的。關於類從J2SE 做繼續和新CLDC類的具體信息,可參考CLDC規范1.0a版本的6.2和6.3中的內容。Java語言規范中的一些例外是沒有浮點支持,沒有類實例的完成化支持和有限的錯誤處理能力。
在這裡提到CLDC HotSpot應用也是具有相關性的,它相當於使用CLDC配置的設備的KVM中Java VM的替換。根據Sun公司,CLDC HotSpot執行VM是一個高性能的JVM(32位,采用CLDC v1.0規范)。他在相同的內存footprint上運行時提供比KVM高出一個數量級的更佳的性能。
CDC:完全Java平台
CDC是應用在具有較大內存,非凡是2MB以上的設備上的,CDC針對有限和間歇的無線連接設備,CDC與CVM和Foundation profile共同定義了完全的J2ME環境。
CVM是為用戶和嵌入設備設計的完全功能性JVM,它支持所有的Java 2 v1.3 VM安全防護,JNI, JVMDI, RMI,弱引用功能和庫。本質上說,CVM具有所有一個駐留桌面系統的JVM所具有的功能。
CDC由J2SE中最小的Java數據包組成。Foundation profile由用戶設備所需要的保持類庫和APIs所組成。因此,假如你工作在一個以CDC為基礎的J2ME環境下,你就需要更新你代碼以使APIs更新換代。
CDC是CLDC的一個擴展集,所以在兩種配置之間存在著向上的兼容性。CDC和Foundation profile也提供了對使用PersonalJava實時規范開發的應用程序的完全兼容。
總結
J2ME模式體系使能了不同設備類別的“非凡版”Java的創建。隨著越來越多的設備制造商開始接受J2ME技術和J2ME設備使用范圍的增大,更新的J2ME profiles將得到應用。通過為開發以Java為基礎的設備提供一個公共最小化平台,J2ME配置用結構化的方式使能了這些Java非凡版本。