現在Java技術十分流行,發展勢頭強勁,而且在SUN公司推出了J2ME平臺后,眾多移動式系統都紛紛支持Java應用程序。由于Java已經成為了業界公認的通用網絡語言,具有超強的跨平臺性,所以Java這種Write once,Run anywhere的特性被目前幾乎所有的手機系統開發商所承認并運用。無一例外,當今的智能手機操作系統都支持KJava技術。為了保證手機操作系統支持運行Java程序,需要將Java虛擬機移植到手機操作系統上。由于手機這種移動式信息設備都采用小容量的Flash和RAM,所以就要求虛擬機體積更小,實時效率更高,故這種Java虛擬機被稱為KVM(K Virtual Machine)。
由于J2ME是以消費性產品為目標而設計的Java運行環境,專門針對移動電話、數字機頂盒和汽車導航系統,因而影響力巨大。本文將研究在MTK手機操作系統上實現嵌入式Java。整個J2ME運行平臺包括Java應用的下載、安裝、運行及觸摸屏支持等一系列功能。
1 相關技術研究
1.1 J2ME平臺
現在的Java系統是一個全方位的開發、運行平臺,可以在任何計算環境中實現。在嵌入式系統,SUN公司推出了J2 ME(Java 2 platform Micro Edition)。
J2ME是Java 2標準版本的微型版本,支持各種各樣的消費類產品和嵌入式設備,如移動電話、PDA、互聯網可視電話、數字機頂盒、車載娛樂和導航系統、網絡交換設備以及信息家電等。J2ME是為了那些使用有限的能源、有限的網絡連接(通常是無線連接)以及有限圖形用戶界面能力的設備開發的。
J2ME體系結構如圖1所示。其中簡表層、配置層和Java虛擬機是J2ME的組成部分。J2ME是一個簡化的Java,是針對各種不同的低端設備而設計的。為了滿足各種環境,J2ME設計了簡表一配置規范。配置是一個語言特性和核心類的配置規范,針對不同的環境(內存、顯示、網絡連接和處理能力)給定不同的配置。也就是定義了該環境的Java語言子集和核心類庫,虛擬機開發者遵照此配置來開發虛擬機。最著名的兩個配置是連接設備配置(CDC)和連接有限設備配置(CLDC)。
CLDC包括K虛擬機(KVM)和一組核心類庫,主要是針對用戶接口簡單、內存較小、網絡運行時連時斷以及帶寬較窄的小型無線設備。其中KVM是JVM的一個實現,特別用于移動電話、PDA等設備。
簡表是針對相同配置的不同特性而開發的擴展類庫,它提供給開發者在特定類型設備上開發的類庫。例如,移動信息設備子集MIDP(Mobile Information Device Pro—file)綜合考慮了移動設備的屏幕和內存限制,定義了J2ME適用的硬件和軟件框架,并提供了這個框架要實現的基本功能及標準接口;應用開發者可以基于這個框架開發出各種應用。MIDP 2.0定義了一系列軟件接口,包括基本輸入輸出、圖形用戶接口、網絡、事件機制、文件系統、應用管理系統、游戲接口、聲音輸出接口和安全機制。
由于CLDC的設備資源受到限制,所以SUN公司專門開發了一個新的虛擬機KVM。Sun公司于2000年公布了KVM的參考實現,采用解釋執行字節碼的Java虛擬機。與編譯執行相比,解釋執行的Java虛擬機在移動通信設備上具有顯著的優點:虛擬機占用移動通信設備非易失性存儲空間比較小;虛擬機運行時占用RAM空間比較小;解釋執行核心代碼量小;字節碼占用RAM空間比較小;實現難度低,可移植性好。現有的具有KVM支持的移動通信設備大多是基于該參考實現的。
1.2 MTK系統
MTK方案是臺灣聯發科技公司提供的手機解決方案。近70%的國產手機采用MTK的芯片和平臺。有資料顯示,2007年MTK手機芯片出貨量高達1.5億片,全球市場占有率近14%,僅次于德州儀器及高通公司。若只計算MTK進入全球GSM手機芯片的市場規模,大約省7億~8億部手機,市場占有率已高達20%以上,排名僅次于德州儀器公司