隨著MTK的流行,使現在的J2ME虛擬機市場上品牌眾多,除了索愛,Nokia S40,Moto,三星,LG等國際大品牌的虛擬機,更是有MTK,展訊內置的一些不知名的虛擬機,因此當初Write Once,Run AnyWhere變成了Write Once,Debug AnyWhere了。對於一個沒有經驗的J2ME程序員來說,開發一個兼容性高的軟件變成了噩夢,不斷的在不同手機,不同平台上打log,在這台手機上解決了這個問題,跑到另外一台機器上問題有重新了,噢,my god!我不干了。別急!我寫這篇文章的目的就是要告訴大家,對於這種狀況,我們也不是束手無策的。下面就等我慢慢的道來解決之道。
本文主要適合那些有經驗的J2ME程序員在優化軟件,或者是需要考慮軟件兼容性時的參考文檔。
Jblend 平台
JBlend 是一家日本的嵌入式虛擬機廠家生產的J2ME虛擬機,此虛擬機大量的用於低端手機平台,本人發現有使用此虛擬機的平台有,MTK,MOTO。
官方網站:http://www.aplixcorp.com/chs/index.Html 。
索尼愛立信平台
索愛的虛擬機平台是:Java Platform。最新版本是8。索愛的平台在性能上,程序的穩定性方面要優於其他虛擬機平台。而且APIs方面的bug也很少,在網絡支持方面也很優秀。基本上不會因為你忘記關閉連接而導致連接洩漏。
官方網站:http://developer.sonyeriCSSon.com/site/zhcn/docs_and_tools/p_docs_and_tools.JSP
S40平台
S40平台是Nokia針對S60智能操作系統推出適應低端手機的手機操作系統,相對其他虛擬機平台來說,S40虛擬機對J2ME的支持相對比較完善,而且穩定些,不過網絡環境這塊,S40對網絡資源洩漏特別關注,具體不同的手機,對同時打開多個連接有限制,這裡建議大家做個測試,就不再累贅了。
官方網站:http://www.forum.nokia.com/
S40平台詳解:http://tech.sina.com.cn/mobile/n/2006-09-22/1053107637.sHtml
S60 平台
Nokia 智能機平台下的J2ME虛擬機。相對S40來說,S60支持的特性比較多,而且有些比較特殊的用法,比如獲取系統相關屬性的時候就是其中之一。
什麼是JCP?
JCP(Java Community Process) 是一個開放的國際組織,主要由Java開發者以及被授權者組成,職能是發展和更新Java技術規范、參考實現(RI)、技術兼容包(TCK)。Java技 術和JCP兩者的原創者都是SUN計算機公司。然而,JCP已經由SUN於1995年創造Java的非正式過程,演進到如今有數百名來自世界各地Java 代表成員一同監督Java發展的正式程序。JCP維護的規范包括J2ME、J2SE、J2EE,XML,OSS,JAIN等。組織成員可以提交JSR(Java Specification Requests),通過特定程序以後,進入到下一版本的規范裡面。所有聲稱符合J2EE規范的J2EE類產品(應用服務器、應用軟件、開發工具等),必須通過該 組織提供的TCK兼容性測試(需要購買測試包),通過該測試後,需要繳納J2EE商標使用費。兩項完成,即是通過J2EE認證(Authorized Java Licensees of J2EE)。
什麼是JSR?
JSR是Java Specification Requests的縮寫,意思是Java 規范請求。是指向JCP(Java Community Process)提出新增一個標准化技術規范的正式請求。任何人都可以提交JSR,以向Java平台增添新的API和服務。JSR已成為Java界的一個重要標准。
下面是J2ME JSR規范列表
名稱
內容
JSR 118
MIDP 2.1 規范。定義了MIDP 相關的接口,高級UI,低級UI,RMS,網絡相關的APIs
JSR 82
定義了藍牙接口相關的APIs
JSR135
Mobile Media API,定義了多媒體相關開發的組件APIs
JSR 172
1. 一個輕量級的標准XML解析器
2. Web Services的遠程調用API
其中這個JSR172實現的輕量級的XML解析器是JAXP1.2(Java API for XML Processing)的一個子集。我們可以查看WTK提供的API看到J2ME-xml提供的類一共只有12個,這說明這個輕量級的XML解析器是適合 在移動電話這種資源受限設備上運行的。
JSR 75
JSR 75(PDA Optional Packages for the J2METM Platform)中定義了兩個可選包:
PIM (The Personal Information Management)API,提供對個人信息數據的訪問,一般包括名片夾,日歷項,和待辦事項。
FC(The FileConnection) APIs,提供對本地文件系統的訪問。
JSR 177
安全APIs
JSR 211
Content Hander 內容處理APIs,可以調用此API打開相應的文件,比如你可以打開jar安裝文件,打開mp3。
JSR 239
Open GL@ES。主要用於圖形相關操作
JSR 179
Location APIs 主要是用於LBS服務
JSR 180
SIP APIs
SIP是一個應用層的信令控制協議。用於創建、修改和釋放一個或多個參與者的會話。這些會話可以好似Internet多媒體會議、IP電話或多媒體分發。會話的參與者可以通過組播(multicast)、網狀單播(unicast)或兩者的混合體進行通信。
JSR 184
Mobile 3D Graphics APIs,3D圖形開發。
JSR 229
手機支付APIs
JSR 234
手機高級多媒體支持,可以支持更豐富的多媒體操作
JSR 238
國際化支持APIs
JSR 248
JSR 248: Mobile Service Architecture MSA 移動服務架構。
MSA for CLDC規范定義了移動電話上的下一代Java平台,當然是基於CLDC的J2ME平台。
MSA for CLDC的目的是為了減少J2ME平台的API分裂,為開發者定義一個高操作性的應用程序和服務環境。
JTWI(Java Technology for Wireless Industry,JSR 185)定義了一系列的規范來強制實現JTWI規范的設備必須實現某些JSR,例如MIDP2.0,WMA和MMAPI等。MSA for CLDC可以認為是JTWI的第2版,它規定了一個高度集中的J2ME平台運行環境。