新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MTK系統(tǒng)下的J2ME運(yùn)行平臺(tái)設(shè)計(jì)

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

作者: 時(shí)間:2009-05-08 來源:網(wǎng)絡(luò) 收藏

移植接口層包含以下部分:
①文件部分,對(duì)文件操作,實(shí)現(xiàn)創(chuàng)建、打開、關(guān)閉、讀、寫等功能。KVM在的時(shí)候需要通過這部分接口使用本地文件,如打開jar、jad文件等。
②網(wǎng)絡(luò)部分,提供Socket訪問功能。
③外部事件,獲取用戶輸入,包括按鍵輸入和觸摸屏輸入。
④圖形顯示部分,負(fù)責(zé)KVM圖形及文字顯示。
時(shí)間部分,提供給KVM精確的時(shí)間。
⑥輸入法,Java程序時(shí)可能要求用戶輸入,此接口實(shí)現(xiàn)調(diào)用系統(tǒng)輸入法功能。
⑦其他接口,內(nèi)存訪問、交互性事件通知以及擴(kuò)充的JSR實(shí)現(xiàn)所需要的接口,如JSRl20、JSRl35等。
2.4 應(yīng)用程序管理系統(tǒng)
應(yīng)用程序管理系統(tǒng)管理整個(gè)Java環(huán)境,實(shí)現(xiàn)如下功能:
①顯示應(yīng)用程序列表,展示給用戶當(dāng)前手機(jī)系統(tǒng)的所有可用的應(yīng)用程序。
②應(yīng)用管理功能選擇菜單,菜單應(yīng)包括兩種類型,分別是程序已經(jīng)安裝好的菜單項(xiàng)和程序還未下載,只有jad文件在本地,需要向服務(wù)器請(qǐng)求下載應(yīng)用安裝后才能運(yùn)行的菜單項(xiàng)。
③下載應(yīng)用,與服務(wù)器通信下載用戶選擇的應(yīng)用。用戶啟動(dòng)Java應(yīng)用流程如圖4所示。

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


3 的實(shí)現(xiàn)
3.1 Java虛擬機(jī)移植的實(shí)現(xiàn)
在實(shí)現(xiàn)內(nèi)存管理模塊時(shí),由于不提供動(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線程在Java堆中都會(huì)有各自的線程執(zhí)行棧,并且由KVM運(yùn)行來調(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*tieks_ptr)函數(shù),可精確到1個(gè)ticks(4.615 ms)。
系統(tǒng)只提供一種大小字體,而Java應(yīng)用需要使用3種大小字體。可以采用以下方式實(shí)現(xiàn):
實(shí)現(xiàn)虛擬機(jī)自身的文字模塊,采用3種大小的ASCII和GB2312字體點(diǎn)陣字庫(kù),從中提取文字點(diǎn)陣信息,由虛擬機(jī)圖形顯示模塊顯示。
②只提供一種大小的字體,這樣應(yīng)用會(huì)受限制。由于系統(tǒng)可用內(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)用要求支持多媒體音頻和事件處理,提供用戶最好的交互功能。在多媒體音頻方面,系統(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),因此在基于所的虛擬機(jī)Socket接口之上,實(shí)現(xiàn)了HTTP協(xié)議,連接服務(wù)器下載用戶選擇的相關(guān)應(yīng)用。


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


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉