當前位置:首頁 > 工業(yè)控制 > 電子設計自動化
[導讀]引 言 現(xiàn)在Java技術十分流行,發(fā)展勢頭強勁,而且在SUN公司推出了J2ME平臺后,眾多移動式系統(tǒng)都紛紛支持Java應用程序。由于Java已經(jīng)成為了業(yè)界公認的通用網(wǎng)絡語言,具有超強的跨平臺性,所以Java這種Write once,Run

引 言

現(xiàn)在Java技術十分流行,發(fā)展勢頭強勁,而且在SUN公司推出了J2ME平臺后,眾多移動式系統(tǒng)都紛紛支持Java應用程序。由于Java已經(jīng)成為了業(yè)界公認的通用網(wǎng)絡語言,具有超強的跨平臺性,所以Java這種Write once,Run anywhere的特性被目前幾乎所有的手機系統(tǒng)開發(fā)商所承認并運用。無一例外,當今的智能手機操作系統(tǒng)都支持KJava技術。為了保證手機操作系統(tǒng)支持運行Java程序,需要將Java虛擬機移植到手機操作系統(tǒng)上。由于手機這種移動式信息設備都采用小容量的Flash和RAM,所以就要求虛擬機體積更小,實時效率更高,故這種Java虛擬機被稱為KVM(K Virtual Machine)。

由于J2ME是以消費性產(chǎn)品為目標而設計的Java運行環(huán)境,專門針對移動電話、數(shù)字機頂盒和汽車導航系統(tǒng),因而影響力巨大。本文將研究在MTK手機操作系統(tǒng)上實現(xiàn)嵌入式Java。整個J2ME運行平臺包括Java應用的下載、安裝、運行及觸摸屏支持等一系列功能。

1 相關技術研究

1.1 J2ME平臺

現(xiàn)在的Java系統(tǒng)是一個全方位的開發(fā)、運行平臺,可以在任何計算環(huán)境中實現(xiàn)。在嵌入式系統(tǒng),SUN公司推出了J2 ME(Java 2 platform. Micro Edition)。

J2ME是Java 2標準版本的微型版本,支持各種各樣的消費類產(chǎn)品和嵌入式設備,如移動電話、PDA、互聯(lián)網(wǎng)可視電話、數(shù)字機頂盒、車載娛樂和導航系統(tǒng)、網(wǎng)絡交換設備以及信息家電等。J2ME是為了那些使用有限的能源、有限的網(wǎng)絡連接(通常是無線連接)以及有限圖形用戶界面能力的設備開發(fā)的。


J2ME體系結構如圖1所示。其中簡表層、配置層和Java虛擬機是J2ME的組成部分。J2ME是一個簡化的Java,是針對各種不同的低端設備而設計的。為了滿足各種環(huán)境,J2ME設計了簡表一配置規(guī)范。配置是一個語言特性和核心類的配置規(guī)范,針對不同的環(huán)境(內(nèi)存、顯示、網(wǎng)絡連接和處理能力) 給定不同的配置。也就是定義了該環(huán)境的Java語言子集和核心類庫,虛擬機開發(fā)者遵照此配置來開發(fā)虛擬機。最著名的兩個配置是連接設備配置(CDC)和連接有限設備配置(CLDC)。

CLDC包括K虛擬機(KVM)和一組核心類庫,主要是針對用戶接口簡單、內(nèi)存較小、網(wǎng)絡運行時連時斷以及帶寬較窄的小型無線設備。其中KVM是JVM的一個實現(xiàn),特別用于移動電話、PDA等設備。

簡表是針對相同配置的不同特性而開發(fā)的擴展類庫,它提供給開發(fā)者在特定類型設備上開發(fā)的類庫。例如,移動信息設備子集MIDP(Mobile Information Device Pro—file)綜合考慮了移動設備的屏幕和內(nèi)存限制,定義了J2ME適用的硬件和軟件框架,并提供了這個框架要實現(xiàn)的基本功能及標準接口;應用開發(fā)者可以基于這個框架開發(fā)出各種應用。MIDP 2.0定義了一系列軟件接口,包括基本輸入輸出、圖形用戶接口、網(wǎng)絡、事件機制、文件系統(tǒng)、應用管理系統(tǒng)、游戲接口、聲音輸出接口和安全機制。

由于CLDC的設備資源受到限制,所以SUN公司專門開發(fā)了一個新的虛擬機KVM。Sun公司于2000年公布了KVM的參考實現(xiàn),采用解釋執(zhí)行字節(jié)碼的Java虛擬機。與編譯執(zhí)行相比,解釋執(zhí)行的Java虛擬機在移動通信設備上具有顯著的優(yōu)點:虛擬機占用移動通信設備非易失性存儲空間比較??;虛擬機運行時占用RAM空間比較?。唤忉寛?zhí)行核心代碼量?。蛔止?jié)碼占用RAM空間比較??;實現(xiàn)難度低,可移植性好?,F(xiàn)有的具有KVM支持的移動通信設備大多是基于該參考實現(xiàn)的。

1.2 MTK系統(tǒng)

MTK方案是臺灣聯(lián)發(fā)科技公司提供的手機解決方案。近70%的國產(chǎn)手機采用MTK的芯片和平臺。有資料顯示,2007年MTK手機芯片出貨量高達 1.5億片,全球市場占有率近14%,僅次于德州儀器及高通公司。若只計算MTK進入全球GSM手機芯片的市場規(guī)模,大約省7億~8億部手機,市場占有率已高達20%以上,排名僅次于德州儀器公司。

在目前MTK市場上,MTK6225平臺占據(jù)主導地位。該系統(tǒng)的主要功能如下:

①任務管理。系統(tǒng)任務采用靜態(tài)創(chuàng)建方式,靜態(tài)配置任務優(yōu)先級、棧大小、任務全局唯一ID等;不提供動態(tài)創(chuàng)建Task的方式;任務內(nèi)部以及任務之間的通信通過內(nèi)部事件隊列和外部事件隊列完成。

②內(nèi)存管理。平臺不提供動態(tài)分配內(nèi)存的方式;應用程序需要使用動態(tài)分配內(nèi)存時,可以采用以下幾種方式:與系統(tǒng)其他模塊共享內(nèi)存,典型的是使用MED 模塊的內(nèi)存;定義一個靜態(tài)數(shù)組,交給系統(tǒng)adm托管,然后調(diào)用kal_adm_alloc、kal_adm_free等內(nèi)存操作函數(shù)實現(xiàn)動態(tài)內(nèi)存分配;定義一個靜態(tài)數(shù)組,應用自己實現(xiàn)基于此數(shù)組的分配和管理,也就是實現(xiàn)自己的內(nèi)存管理模塊。

③事件機制。平臺事件機制采用“注冊一回調(diào)”機制,把需要處理的各個按鍵、觸摸屏等通過系統(tǒng)函數(shù)注冊,當有事件發(fā)生時系統(tǒng)調(diào)用所注冊的*者。

④UI。系統(tǒng)MMI層提供了豐富的UI元素,如各種消息框、列表、圖標等。

⑤系統(tǒng)局限性。MTK6225平臺只有一種中文字體,字體大小固定。

2 平臺設計

2.1 平臺功能分析

在MTK平臺上實現(xiàn)J2ME運行環(huán)境,需要實現(xiàn)的功能如下:

①應用程序管理。Java擁有豐富的應用程序,平臺需要管理這些應用程序,因此要實現(xiàn)應用程序管理系統(tǒng)。應用程序管理系統(tǒng)功能包括程序的安裝、刪除、運行、下載等。

②虛擬機的實現(xiàn)平臺。嵌入式Java虛擬機的實現(xiàn)平臺有多種方式。它可以直接嵌入到裸機上,也可以加載于其他嵌入式操作系統(tǒng)之上,成為一臺抽象的計算機。它的平臺無關性給它帶來了巨大的發(fā)展前景。經(jīng)過研究,在MTK平臺上,采用SUN公司公布的KVM作為核心,結合虛擬機所需要實現(xiàn)的功能和MTK平臺,設計和實現(xiàn)移植接口,最后在MTK平臺上運行KVM,在KVM之上運行Java應用程序。

2.2 平臺框架設計

系統(tǒng)平臺由應用程序管理系統(tǒng)(ApplicationManagement System,AMS)、KVM核心(KVM core)、KVM移植接口層、MTK系統(tǒng)平臺構成。平臺框圖如圖2所示。


移植接口層包含以下部分:

①文件系統(tǒng)部分,對文件操作,實現(xiàn)創(chuàng)建、打開、關閉、讀、寫等功能。KVM在運行的時候需要通過這部分接口使用本地文件,如打開jar、jad文件等。


②網(wǎng)絡部分,提供Socket訪問功能。

③外部事件,獲取用戶輸入,包括按鍵輸入和觸摸屏輸入。

④圖形顯示部分,負責KVM圖形及文字顯示。

⑤系統(tǒng)時間部分,提供給KVM精確的系統(tǒng)時間。

⑥輸入法,Java程序運行時可能要求用戶輸入,此接口實現(xiàn)調(diào)用系統(tǒng)輸入法功能。

⑦其他接口,內(nèi)存訪問、交互性事件通知以及擴充的JSR實現(xiàn)所需要的接口,如JSRl20、JSRl35等。

2.3 應用程序管理系統(tǒng)設計

應用程序管理系統(tǒng)管理整個Java運行環(huán)境,實現(xiàn)如下功能:

①顯示應用程序列表,展示給用戶當前手機系統(tǒng)的所有可用的應用程序。

②應用管理功能選擇菜單,菜單應包括兩種類型,分別是程序已經(jīng)安裝好的菜單項和程序還未下載,只有jad文件在本地,需要向服務器請求下載應用安裝后才能運行的菜單項。

③下載應用,與服務器通信下載用戶選擇的應用。用戶啟動Java應用流程如圖4所示。


根據(jù)UI和engine的劃分,可以把應用程序管理系統(tǒng)分為應用程序管理界面和應用管理系統(tǒng)核心:應用程序管理界面提供給用戶交互式界面,包括管理系統(tǒng)主界面、程序下載界面、程序運行界面、管理功能菜單以及各級子界面;應用管理系統(tǒng)核心由實現(xiàn)功能的一系列API組成,提供給上層界面調(diào)用,實現(xiàn)程序的下載、安裝、刪除、運行等功能。

3 平臺的實現(xiàn)

3.1 Java虛擬機移植的實現(xiàn)

在實現(xiàn)內(nèi)存管理模塊時,由于平臺不提供動態(tài)分配內(nèi)存方式,而虛擬機需要一塊比較大的內(nèi)存,不能從MED模塊分配,且根據(jù)需要會對內(nèi)存進行壓縮整理,不適合采用系統(tǒng)托管方式。所以,采用虛擬機自己管理內(nèi)存的方式,實現(xiàn)內(nèi)存管理模塊。

KVM就像一個軟處理器一樣控制解釋Java字節(jié)碼和它的執(zhí)行狀況,每一個創(chuàng)建的Java線程在Java堆中都會有各自的線程執(zhí)行棧,并且由KVM 運行來調(diào)度管理。為了使KVM能盡量正確地劃分時間片,需要給一個時間標準作為KVM的內(nèi)部時鐘,由時間接口實現(xiàn)。系統(tǒng)提供void kal_get_time(kal_uint32*tieks_ptr)函數(shù),可精確到1個ticks(4.615 ms)。

系統(tǒng)只提供一種大小字體,而Java應用需要使用3種大小字體??梢圆捎靡韵路绞綄崿F(xiàn):

①設計實現(xiàn)虛擬機自身的文字模塊,采用3種大小的ASCII和GB2312字體點陣字庫,從中提取文字點陣信息,由虛擬機圖形顯示模塊顯示。

②只提供一種大小的字體,這樣應用會受限制。由于系統(tǒng)平臺可用內(nèi)存小,文字點陣字庫相對比較大,不適合在這個平臺使用,因此選擇采用第2種方式。如今在移動多媒體領域,Java應用大多要求聯(lián)網(wǎng),所以實現(xiàn)網(wǎng)絡通信,即要實現(xiàn)TCP/IP,支持套接字,是KVM一個非常重要的功能。系統(tǒng) “soc_api.h”文件中定義了套接字接口API,使用此接口實現(xiàn)虛擬機網(wǎng)絡方面移植非常方便。

Java應用要求支持多媒體音頻和事件處理,提供用戶最好的交互功能。在多媒體音頻方面,MTK系統(tǒng)提供了非常全面的支持——支持MID、MP3等格式的音頻播放。根據(jù)Java應用的需求,一些基于MIDP2.O擴展包的實現(xiàn)成為必要。本系統(tǒng)實現(xiàn)了JSRl20的短信功能以及JSRl35的部分功能。

3.2 應用程序管理系統(tǒng)的實現(xiàn)

實現(xiàn)了應用程序管理核心API,包括對jar、jad文件的安裝、刪除、信息獲取等等。系統(tǒng)MMI層提供了豐富的UI元素,因此比較容易地實現(xiàn)了應用程序管理界面。實現(xiàn)了應用下載模塊,與服務器通信下載應用。由于平臺未提供HTTP協(xié)議的實現(xiàn),因此在基于所設計的虛擬機Socket接口之上,實現(xiàn)了 HTTP協(xié)議,連接服務器下載用戶選擇的相關應用。

結 語

J2ME運行平臺在MTK系統(tǒng)上的設計和實現(xiàn),充分考慮了系統(tǒng)空間的局限性和運行效率這兩大要素,以及Java運行時與系統(tǒng)的交互事件處理問題,實現(xiàn)了在MTK平臺上下載、安裝、運行Java應用一體化平臺,并在MIP2.0基礎上擴充實現(xiàn)了JSR120、JSR135部分功能。該平臺已經(jīng)在多款 MTK6225平臺手機上運行。



來源:角色2次

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉