国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

MTK系統(tǒng)下的J2ME運(yùn)行平臺(tái)設(shè)計(jì)

發(fā)布時(shí)間:2010-3-24 08:30    發(fā)布者:李寬
引言

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

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

1.1  J2ME平臺(tái)

現(xiàn)在的 Java系統(tǒng)是一個(gè)全方位的開(kāi)發(fā)、運(yùn)行平臺(tái),可以在任何計(jì)算環(huán)境中實(shí)現(xiàn)。在嵌入式系統(tǒng),suN公司推出了J2ME(Java 2 platform Micro Edition)。

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

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



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

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

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

1.2 MTK系統(tǒng)

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

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

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

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

③ 事件機(jī)制。平臺(tái)事件機(jī)制采用“注冊(cè)-回調(diào)”機(jī)制,把需要處理的各個(gè)按鍵、觸摸屏等通過(guò)系統(tǒng)函數(shù)注冊(cè),當(dāng)有事件發(fā)生時(shí)系統(tǒng)調(diào)用所注冊(cè)的監(jiān)聽(tīng)者。

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

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

2 平臺(tái)設(shè)計(jì)

2.1平臺(tái)功能分析

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

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

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

2.2  平臺(tái)框架設(shè)計(jì)

系統(tǒng)平臺(tái)由應(yīng)用程序管理系統(tǒng)(Application ManagementSystem,AMS)、KVM核心(KvM core)、KVM移植接口層、MTK系統(tǒng)平臺(tái)構(gòu)成。平臺(tái)框圖如圖2所示。



應(yīng)用程序管理系統(tǒng)是整個(gè)系統(tǒng)和用戶(hù)的交互層,負(fù)責(zé)對(duì)J2ME應(yīng)用程序的下載、列表顯示、安裝、刪除、運(yùn)行等;KVM核心是整個(gè)J2ME運(yùn)行系統(tǒng)的核心,包含MIDP2.0十CLDCl.1的實(shí)現(xiàn);KVM移植接口層是KVM在系統(tǒng)平臺(tái)上移植需要的接口層,負(fù)責(zé)提供KVM核心運(yùn)行所需要的所有與操作系統(tǒng)相關(guān)的功能調(diào)用;MTK系統(tǒng)平臺(tái)負(fù)責(zé)提供KVM移植接口層所需要實(shí)現(xiàn)的所有函數(shù)的操作系統(tǒng)調(diào)用。

2.3 Java虛擬機(jī)移植設(shè)計(jì)

KVM核心在運(yùn)行的時(shí)候需要向MTK平臺(tái)獲取內(nèi)存資源、獲取外部事件、文件操作等。將所有與系統(tǒng)相關(guān)的調(diào)用抽象出來(lái),形成抽象接口層,如圖3所示。



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

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

②網(wǎng)絡(luò)部分,提供 Socket訪(fǎng)問(wèn)功能。

③外部事件,獲取用戶(hù)輸入,包括按鍵輸入和觸摸屏④圖形顯示部分,負(fù)責(zé)KVM圖形及文字顯示。

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

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

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

2.4  應(yīng)用程序管理系統(tǒng)設(shè)計(jì)

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

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

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

③下載應(yīng)用,與服務(wù)器通信下載用戶(hù)選擇的應(yīng)用。用戶(hù)啟動(dòng)Java應(yīng)用流程如圖4所示。



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

3 平臺(tái)的實(shí)現(xiàn)

3.1  Java虛擬機(jī)移植的實(shí)現(xiàn)

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

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

系統(tǒng)只提供一種大小字體,而Java應(yīng)用需要使用3種大小字體。可以采用以下方式實(shí)現(xiàn):

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

②只提供一種大小的字體,這樣應(yīng)用會(huì)受限制。

由于系統(tǒng)平臺(tái)可用內(nèi)存小,文字點(diǎn)陣字庫(kù)相對(duì)比較大,不適合在這個(gè)平臺(tái)使用,因此選擇采用第2種方式。

如今在移動(dòng)多媒體領(lǐng)域,Java應(yīng)用大多要求聯(lián)網(wǎng),所以實(shí)現(xiàn)網(wǎng)絡(luò)通信,即要實(shí)現(xiàn)TcP/IP,支持套接字,是KVM一個(gè)非常重要的功能。系統(tǒng)“SOC_api.h”文件中定義了套接字接口 API,使用此接口實(shí)現(xiàn)虛擬機(jī)網(wǎng)絡(luò)方面移植非常方便。

Java應(yīng)用要求支持多媒體音頻和事件處理,提供用戶(hù)最好的交互功能。在多媒體音頻方面,MTK系統(tǒng)提供了非常全面的支持——支持MID、MP3等格式的音頻播放。

根據(jù)Java應(yīng)用的需求,一些基于MIDP2.O擴(kuò)展包的實(shí)現(xiàn)成為必要。本系統(tǒng)實(shí)現(xiàn)了JSRl20的短信功能以及JSRl35的部分功能。

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

實(shí)現(xiàn)了應(yīng)用程序管理核心API,包括對(duì)jar、jad文件的安裝、刪除、信息獲取等等。系統(tǒng)MMI層提供了豐富的UI元素,因此比較容易地實(shí)現(xiàn)了應(yīng)用程序管理界面。

實(shí)現(xiàn)了應(yīng)用下載模塊,與服務(wù)器通信下載應(yīng)用。由于平臺(tái)未提供HTTP協(xié)議的實(shí)現(xiàn),因此在基于所設(shè)計(jì)的虛擬機(jī)Socket接口之上,實(shí)現(xiàn)了HTTP協(xié)議,連接服務(wù)器下載用戶(hù)選擇的相關(guān)應(yīng)用。

結(jié)語(yǔ)

J2ME運(yùn)行平臺(tái)在MTK系統(tǒng)上的設(shè)計(jì)和實(shí)現(xiàn),充分考慮了系統(tǒng)空間的局限性和運(yùn)行效率這兩大要素,以及Java運(yùn)行時(shí)與系統(tǒng)的交互事件處理問(wèn)題,實(shí)現(xiàn)了在MTK平臺(tái)上下載、安裝、運(yùn)行Java應(yīng)用一體化平臺(tái),并在MIDP2.0基礎(chǔ)上擴(kuò)充實(shí)現(xiàn)了JSRl20、JSRl35部分功能。

該平臺(tái)已經(jīng)在多款MTK6225平臺(tái)手機(jī)上運(yùn)行。

參考文獻(xiàn)

   1. CLDC Reference Implementation version 1.1 2004
   2. MIDP Reference Implementation version 2.0 FCS 2004
   3. Venners Bill.曹曉鋼.蔣靖 深入Java虛擬機(jī) 2003
   4. 探矽工作室 深入嵌入式Java虛擬機(jī) 2003
   5. 李允.羅蕾.雷昊峰.熊光澤 嵌入式 Java虛擬機(jī)的性能優(yōu)化技術(shù) [期刊論文] -計(jì)算機(jī)工程2004(18)
   6. 曹軍.羅蕾 MIDP2.0 及其移植技術(shù)分析 [期刊論文] -單片機(jī)與嵌入式系統(tǒng)應(yīng)用2004(1)

作者:電子科技大學(xué) 馮東  羅蕾
來(lái)源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用  2009 (4)
本文地址:http://m.qingdxww.cn/thread-9786-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠(chǎng)商推薦

  • Microchip視頻專(zhuān)區(qū)
  • FPGA設(shè)計(jì)流程培訓(xùn)教程
  • Chiptorials——如何使用ATECC608 TrustFLEX實(shí)現(xiàn)公鑰輪換
  • Chiptorials ——如何將CryptoAuthLib庫(kù)用于Microchip安全身份驗(yàn)證IC
  • Chiptorials ——使用ATECC608 TrustFLEX實(shí)現(xiàn)基本非對(duì)稱(chēng)身份驗(yàn)證
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99在线观看 | 青草国内精品视频在线观看 | 78成人网| 欧美激情一区二区三区不卡 | 青青精品 | 亚洲欧美日韩高清中文在线 | 国产小视频精品 | 国亚洲欧美日韩精品 | 日韩精品一区二区在线观看 | 国产高清乱码无卡女大生 | 91免费版在线观看 | 手机看片国产免费现在观看 | 国产精品嘿咻嘿咻在线播放 | 4虎影视国产在线观看精品 4虎成人 | 成人午夜亚洲影视在线观看 | 天堂最新版资源在线下载 | 青青草伊人 | 韩国黄色毛片 | 永久福利盒子日韩日韩免费看 | 麻豆国产91 | 日本精品中文字幕 | 免费黄色高清视频 | 国产黄色在线免费观看 | 一区二区三区四区免费视频 | 91精品国产麻豆91久久久久久 | 女人高潮特级毛片 | 国产一区二区在线不卡 | 国产精品免费看 | 在线观看国产区 | 日本不卡视频一区二区 | 91在线视频观看 | 国产福利免费视频 | 精品一区二区三区在线观看l | 办公室被老板调教bd | 91av视频在线播放 | 欧美日韩在线观看一区 | www亚洲一区| 日韩在线视精品在亚洲 | 亚洲不卡在线观看 | 日本不卡中文字幕一区二区 | 成年女人免费看片 |