自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解關(guān)于MTK驗證J2ME問題解決

移動開發(fā)
關(guān)于MTK驗證J2ME問題解決是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)MTK在J2ME中的應(yīng)用,具體內(nèi)容的詳解來看本文。

關(guān)于MTK驗證J2ME問題解決是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)MTKJ2ME中的應(yīng)用,具體內(nèi)容的詳解來看本文。

KVM(kilo Virtual Machine)即J2ME移植到MTK的稱呼。

J2ME (Java 2 Micro Edition) 微縮版,用于消費(fèi)類電子產(chǎn)品的軟件開發(fā)。J2ME體系結(jié)構(gòu)包括簡表層、配置層和Java虛擬機(jī)是J2ME的組成部分。

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

Jar - Java Archive, Java 歸檔文件,程序體文件。

Jad是jar的描述文件,用來識別該JAVA程序是否匹配該型號手機(jī)以及手機(jī)讀取時確定游戲容量,這就是為什么有時候有的游戲不能下載,我們可以通過更改.JAD文件來使其可以下載的原因)

MTK主要功能如下

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

2、內(nèi)存管理。平臺不提供動態(tài)分配內(nèi)存的方式;應(yīng)用程序需要使用動態(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ù)組,應(yīng)用自己實現(xiàn)基于此數(shù)組的分配和管理,也就是實現(xiàn)自己的內(nèi)存管理模塊。

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

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

平臺框架

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

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

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

移植接口層

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

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

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

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

(4)圖形顯示部分,負(fù)責(zé)KVM圖形及文字顯示。

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

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

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

J2me 應(yīng)用啟動流程

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

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

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

3、下載應(yīng)用,與服務(wù)器通信下載用戶選擇的應(yīng)用。

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

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

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

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

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

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

1、J2ME 移植的空間需求(不同版本會有差異,但是差異不大,這里以 07B GEMINI 0812版本為例) ROM : 1.3 M; RAM 0.7 M – 2.6 M (可以配置運(yùn)行期內(nèi)存)

2、J2ME的網(wǎng)絡(luò)配置,由于J2ME依附于TELECA OBIG WAP,所以默認(rèn)網(wǎng)絡(luò)配置就是您在WAP里的配置,當(dāng)然您也可以在配置里修改網(wǎng)絡(luò)鏈接。

3、由于KVM有差異, j2me應(yīng)用使用的標(biāo)準(zhǔn)不同,所以有些應(yīng)用不能使用,這是正常的。

4、 J2ME是支持所有分辨率平臺,但是你的應(yīng)用的分辨率是有差別,在不匹配的分辨率下,界面會混亂,這個跟KVM沒有關(guān)系,也有自適應(yīng)分辨率的應(yīng)用,比較少而已。

5、J2ME應(yīng)用中語言是怎么預(yù)設(shè)的。由于KVM有得到語言的接口,但是大多應(yīng)用是沒有使用這個接口的而是自行使用自己的語言,因為應(yīng)用中內(nèi)置的語言不一定和mtk手機(jī)上的語言一致,但是字符集都是使用mtk系統(tǒng)的,如果系統(tǒng)沒有這個語言在j2me應(yīng)用中會是亂碼的。一般修改語言的話要在j2me應(yīng)用里的菜單選項中選擇修改。

6、可以通過jar,安裝j2me應(yīng)用,也可以通過Jad安裝j2me應(yīng)用,但是如果使用Jad 安裝的話,Jar文件必須存在而且Jad文件與jar文件必須一致。

7、J2me應(yīng)用的預(yù)置,這個KVM支持j2me 應(yīng)用預(yù)置,即可以在出廠前先做進(jìn)幾個應(yīng)用,但是會占用ROM空間(跟應(yīng)用的大小有關(guān)),并且預(yù)置進(jìn)的應(yīng)用不能刪除.預(yù)置的話必須使用Jad,  jar. 如果您的應(yīng)用沒有Jad文件,我們會提供jar文件的生成Jad文件的工具。

8、已經(jīng)預(yù)置的應(yīng)用可以單獨的提出來放在任何地方。我們會提供相關(guān)開發(fā)例子, 我們已經(jīng)實現(xiàn)了函數(shù)的功能,只需要傳入?yún)?shù)即可。例如把MSN提出來放在idle screen 或主菜單,或其他地方。

9、J2me開啟的java logo是可以替換的。

10、我們會提供一些常用的j2me應(yīng)用, 流行的im工具:QQ, MSN, 飛信,旺旺,Skype等; 各種字典:金山詞霸,牛津英文等;炒股軟件,常用游戲,電子書等等工具軟件。

11、另外還是很多和MTK相關(guān)的問題,例如有些屏退出睡眠白屏等這些實際上不是KVM的問題,我們可以提供一些方法給予規(guī)避。

以下列出測試報告: (支持以下規(guī)范)

  1. MIDP:MIDP-2.0  CLDC-1.1  PIM(JSR75):1.0  FileConnection(JSR75):1.0  
  2.  
  3. Bluetooth(JSR82):1.1  MMAPI(JSR135):1.1  JTWI (JSR185):1.0  
  4.  
  5. Web Services (JSR 172), File and PIM APIs (JSR 75), Bluetooth and OBEX APIs (JSR 82), and 3D Graphics (JSR 184) 

[提示]

在MT6235上的測試結(jié)果里JBENCHMARK2的值是980比N95中J2me的結(jié)果高40%.因為MT6235上做了3D的特殊加速處理。但是在MT6225上的測試結(jié)果里JBENCHMARK2的值只有99.

MT6235平臺使用j2me的結(jié)構(gòu)。

小結(jié):詳解關(guān)于MTK驗證J2ME問題解決的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助。

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-09-29 08:57:04

J2ME前景

2010-09-29 13:23:12

J2MEPIM

2010-09-29 16:20:06

J2MEWeb服務(wù)API

2010-09-29 10:41:18

J2MEJVM

2009-07-09 16:06:10

JDK J2EE J2

2011-09-06 13:15:04

MTK文件系統(tǒng)內(nèi)存

2009-06-17 11:27:00

setClip方法J2ME

2010-09-29 09:19:39

J2ME開發(fā)工具

2010-09-30 13:39:52

2011-09-06 09:26:03

2011-12-12 16:47:38

J2MESOAP協(xié)議

2010-09-30 09:56:26

J2ME Polish

2009-03-22 09:38:03

Android移植J2ME

2009-06-23 11:30:16

RMSJ2ME

2010-09-30 13:28:55

J2ME圖形

2010-09-29 13:50:31

J2MEJ2SE

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2010-09-29 13:37:20

J2MEPIM

2009-09-04 11:10:51

開源J2ME UI庫

2010-09-30 12:53:00

J2MECSS
點贊
收藏

51CTO技術(shù)棧公眾號