這裡向大家描述一下J2ME平台,J2ME各應用平台由Configuration(配置)和Profile(檔次)來組成,配置是為JVM定義最小的能力和庫,使JVM足夠小並且能夠運行在相同級別的設備上。
J2ME平台
J2ME是Java2這個平台專門針對家電類產品和嵌入式設備制定的。組成J2ME的Java虛擬機和API是與那些針對家電類產品和嵌入式產品的運行環境相匹配的。
J2ME針對小型設備設計,具有豐富的用戶接口和網絡交互模型,編程和可移植性好。
J2ME各應用平台由Configuration(配置)和Profile(檔次)來組成,配置是為JVM定義最小的能力和庫,使JVM足夠小並且能夠運行在相同級別的設備上。由於同一級別設備的配置對內存和處理能力的要求相近似,所以J2ME將所有的嵌入式應用設備大體上區分為兩種:一種是運算功能有限、電源供應也有限的嵌入式設備如:PDA(PersonalDigitalAssistant:個人數字助理)和手機等,並把它們定義在CLDC規格之中;另外一種是運算能力相對較佳、並在電源供應上相對比較充足的嵌入式裝置,並把它們規范為CDC規格。
檔次基於Java技術的API集合,由不同功能的Java類庫組成。檔次構建在配置之上,作為配置的補充,為特定的設備提供足夠的運行環境。檔次是為了要更明確地區分出各種嵌入式設備上Java程序該如何開發,具有哪些功能。因此檔次之中定義了與特定嵌入式設備非常相關的擴充類,而Java程序在各種嵌入式裝置的應用接口該如何表達則通過檔次的定義來實現。各檔次中所定義的擴充類庫是根據底層配置中所定義的核心類庫建立。
J2MECDC平台
CVM是構成CDC的基礎,它在傳統Java虛擬機基礎上對Byte-Code解釋器進行了改進,具有動態編譯器功能,使運行Java程序更為有效和快速。CVM的運行環境需要大於2M字節的程序存儲器和大於512字節的運行存儲器。
1、CDC1.0具有如下特點
(1)支持異常類,Java.lang.Exception;
(2)映像API(包括Java.lang.reflect軟件包);
(3)支持J2SE規格網絡(Java.Net);
(4)支持浮點數(包括Java.lang.Float、Java.lang.Double和Java.lang.StrictMath類);
(5)classloader類(Java.lang.ClassLoader);
(6)支持本地線程(Java.Jang.Process);
(7)串行化的類(Java.io.Serialiable和Java.io.Externalizable);
(8)文件系統支持;
(9)支持J2SE的Java.lang.ref、Java.math、Java.security、Java.security.dert、Java.text、Java.util.jar和Java.util.zip軟件包。
2、J2MECDC平台中的三個檔次和CDC相關
(1)FP(FoundationProfile:基本檔次);
(2)PBP(PersonalBasisProfile:個性化基本檔次);
(3)PP(PersonalProfile:個性化檔次)。
這三個不同配置之間的關系如圖2所示。其中每個上層模塊都是在下層模塊的基礎上根據相應設備的需求進行功能擴展,也就是API擴展的。圖2中的CVM是符合J2ME規范的JavaVM。
這些模塊的主要差別在於:J2MECDC定義了這類設備所必須的最小的運行環境,使得應用系統能夠正常啟動和運行。任何一個基於CDC的應用系統如果要完成一個實際的任務,只有配置是不夠的,至少需要包括基本的核心功能,才能完成特定的任務。FP確定了Java平台功能的核心組件,但是FP缺乏對GUI支持,適合於不需要圖形顯示的設備。PBP在FP基礎之上提供了一個簡化的GUI,它保留了圖形的ComponentFramewoek(組件框架),去掉那些重量級的圖形模塊,成為抽象圖形工具AWT的一個子集。PBP主要適用於那些對圖形件復雜度要求不高的娛樂裝置(如:游戲機、數字電視機頂盒、汽車電器等等)。PP在FP基礎之上進一步擴充了PBP的功能,全面支持AWT、Applet和JavaBeans,同時也完全兼容PersonalJava1.3,PP實際上是PersonalJava的一個替代規格。PP檔次主要適用於移動Internet浏覽設備、高端PDA及移動電話、需連接Internet的機頂盒(如MHP1.1)等。
作為數字電視中間件的Java平台,因為要支持Internet類型的內容,其圖形要求較強,因此需要選擇PP檔次。
3、FP1.0
FP是在配置的基礎之土,遵循J2SE1.3規范,滿足那些支持J2SE標准API子集的設備需求而擴展的API集合。其擴展的功能主要包括:
(1)支持TCP;
(2)支持Java.text.resources;
(3)增強安全體系的支持,如:Java.security.acl,Java.seemty.spec;
(4)增加了代碼簽名等功能;
(5)完善了對zip的支持。
4、PBP1.0
PBP在FP的基礎之上提供了一個簡化的對GUI的支持,它的主要特點是:
(1)支持簡化的AWT;
(2)遵循JavaBeans的規范;
(3)定義了兩種不同的程序運行模型。
5、PP1.0
PP是為那些需要使用AWT框架的應用程序准備的。PP以FP為基礎,是J2SE1.3.1的子集,它的主要特點是:
(1)支持AWT;
(2)支持webapplets;
(3)為PersonalJava的應用程序提供相應的運行環境;
(4)遵循JavaBeans的規范;
(5)在運行模型中加入了Applet支持。
J2MECLDC平台
CLDC適用於一些硬件資源有限的接收機,J2ME規范中,CLDC主要是針對運算功能有限、電力供應也有限的嵌入式裝置(如PDA、手機)定義的。它所需要的運行資源在CPU處理能力、內存、網絡帶寬和電源等方面的資源需求要低於CDC對資源的需求。
1、用J2MECLDC寫成的應用業務程序的特點
(1)可在微小型KVM上運行;
(2)使Javaapplet成為可移植的、可下載的和安全的;
(3)同Javascript應用程序相比,Javaapplet可以更有效的利用內存;
(4)使得Java用戶具有百分之百的可擴充性;
(5)開發者可脫離基於PC的Java開發環境使用其內容。
2、CLDC的局限性
CLDC為了減少對各種運行資源的需求,進行了大量的裁剪和改動。它存在如下的局限性:
(1)不支持浮點數;
(2)不支持輸入/輸出(File、FileInputStream等);
(3)不支持AWT。