1 Java平台的劃分
J2EE(Java 2 Enterprise Edition) J2SE (Java 2 Standard Edition) J2ME(Java 2 Micro Edition) Java Card
所有平台的劃分以J2SE為基准點,J2SE支持所有的Core Class以及8種基本類型(boolean,char,byte,short,int,long,float,double)。
2 J2ME技術架構
三個名詞:JCP(Java Community Process),JSR(Java Specification Request),Expert Group。Expert Group 遵循JCP所制定的准則來制定各種JSR。
J2ME由三種類型的規范堆棧而成,最下面的是Configuration,中間是Profile,最頂層是Optional Packages。Configuration定義了硬件所必須具備的能力,比如ROM,RAM,CPU的時鐘周期最少應該是多少等,還有一組低級API。Profile針對不同機器的特性定義了高級的API,這些API通常都是與其他平台不相關的擴充類庫,高級API決定了該種機器上Java程序的撰寫方法。而就算是同種設備,也有不同的功能,這些功能就定義在Optional Package(廠商選擇性實現包)中。
名詞:RI(Reference Implementation)參考實現 TCK(Technical Compatible Kit)兼容性測試包
3 CLDC CDC MIDP
CLDC(Connected Limited Device Configuration)有限連接設備配置
CDC(Connected Device Configuration)連接設備配置
MIDP(Mobile Information Device Profile)移動信息設備簡表
J2ME大致把所有的嵌入式設備大體上分為兩種:一種是資源有限,包括運算能力有限,電力供應有限,聯機速度有限或是屏幕大小與色彩有限的嵌入設備,比如PDA,手機;另一種是資源相對無限的設備,比如說冷氣機,電冰箱,電視機頂盒。相對於這兩種設備的Configuration就是上面列出的CLDC和CDC。
CDC1.0和 CDC1.1在Core Class上和J2SE相差無幾,也支持所有的java基本類型。但是CLDC1.0就相距甚遠,除了只剩下兩三個包之外,也不支持浮點數(float,double)。CLDC1.1加強了CLDC1.0的功能,提供了浮點數運算的支持,也增加了java.lang.Float和java.lang.Double兩種工具類,還有與J2SE更相近的工具集java.util.Calendar,Java.util.Date,Zone等等。雖然增加了很多功能,但運行時最小內存也從CLDC1.0的160KB增加到192KB。
上面說的是配置(Configuration),下面看看簡表(Profile)。
Profile是定義在Configuration之上的規范,每種profile都會聲明它是根植於哪種Configuration的。之所以會有Profile的出現,是為了要更明確區分出各種嵌入式設備之上的Java程序該如何開發,以及它們應該有什麼功能。其中Mobile Information Device Profile(MIDP)就是針對移動設備所定義的,比如Pager,Mobile Phone等等,都是屬於移動設備。另一個Information Module Profile(IMP)則是針對沒有屏幕的移動設備所設計。
目前MIDP2.0規范要求屏幕大小至少要95×54的黑白屏幕,至少要有256KB的內存,8KB以上的非易失性內存(non-volatile memory)作為應用程序儲存數據使用,以及能夠播放聲音的功能。
4 Optional Packages和Building Block
所謂廠商選擇性實現,通常是一些本身具有獨立價值的API,廠商可以按照自己的需求,選擇性的實現其中某些Optional Packages規范。它是架構在特定Configuration之上。例如,PDA Optional Packages就是由Palm Computing公司所主導,用來補充MIDP功能的Optional Packages,尤其某些在PDA上很重要,而MIDP又沒有的功能,例如AWT,PLM等。
由於在完整的Optional Package規范中所制定的功能過於強大,某些機器因為時空問題無法順利實現出來,或是短期內對於Optional Package所提供的功能並沒有完整的需求,從而有了Building Block的出現。
JTWI(Java Technology for Wireless Industry)是一個綜合性的規范,其目的是為了確保J2ME軟件的可移植性。JTWI主要分為三部分:1 規定平台必須支持的API 2 統一的應用程序執行環境 3 既有規范的理清與加強。 在API部分,JTWI規定至少必須支持CLDC1.0、MIDP2.0以及WMA1.1。
最完整、功能最強平台:CLDC1.1+ MIDP2.0+ WMA1.1+ MMAPI1.1
JTWI規定:可以執行J2ME應用程序的移動通訊設備,至少可以容許大小為64KB以上的程序主體(JAR文件)、5KB以上的應用程序描述文件(JAD文件)、30KB以上的永續存儲空間,執行時期的內存為256KB。
JTWI規定:設備所支持的任何媒體格式(例如圖片、聲音、影象等)都應該能夠使用HTTP1.1提取,即存取這些媒體所使用的URL都必須能夠接受HTTP作為存取的通訊協議。
5 MIDP應用程序的部署
所謂MIDP應用程序,就是指遵循MIDP規范所開發的應用程序。一個完整的MIDP應用程序由兩個文件組成:應用程序主體(JAR文件)和應用程序描述文件(JAD文件)。當我們完成一個MIDP應用程序之後,必須讓程序能在用戶的設備上執行,這個行為稱為部署(deploy)。
部署方式:兩種——OTA 與 非OTA
OTA(Over The Air)即經由無線通信網絡將MIDP應用程序下載到設備上。
非OTA:1傳輸線和買手機附贈的下載軟件 2 紅外線(IrDA) 3 藍牙(Bluetooth) 4 多媒體信息服務(MMS) 5 Email附件
JINI:一種可以連接各種java平台的技術。不同平台的Java程序經由JINI能夠彼此連接在一起,彼此分享對方的資源。