日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
透視Java手機(jī)終端技術(shù)發(fā)展

J2ME的相關(guān)概念

創(chuàng)新互聯(lián)為客戶提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開(kāi)發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站程序開(kāi)發(fā)、WEB系統(tǒng)開(kāi)發(fā)、微信二次開(kāi)發(fā)、成都做手機(jī)網(wǎng)站等網(wǎng)站方面業(yè)務(wù)。

作為一種跨平臺(tái)的語(yǔ)言,Java近年來(lái)得到了廣泛關(guān)注和快速發(fā)展,為了適應(yīng)不同級(jí)別計(jì)算機(jī)硬件的開(kāi)發(fā)需要,Java平臺(tái)形成了三個(gè)分支,J2EE,J2SE和J2ME。

針對(duì)企業(yè)級(jí)應(yīng)用的J2EE,是一個(gè)適合分布式的、多用戶、企業(yè)級(jí)應(yīng)用系統(tǒng)運(yùn)轉(zhuǎn)的平臺(tái),針對(duì)桌面應(yīng)用的J2SE,針對(duì)移動(dòng)終端領(lǐng)域的J2ME。

那么,到底什么是J2ME?簡(jiǎn)單來(lái)講,J2ME是一個(gè)支持Java應(yīng)用程序的運(yùn)行環(huán)境,是為了支持象PDA、手機(jī)等小型的嵌入式或移動(dòng)設(shè)備而推出的一系列的技術(shù)和規(guī)范的總稱。

由于J2ME要支持的硬件平臺(tái)有很大差異,其中有比較高端的設(shè)備,如機(jī)頂盒,也有比較低端的,如手機(jī),因此為了滿足不同硬件的開(kāi)發(fā)要求,J2ME規(guī)定了Configuration(配置)的概念,Configuration對(duì)不同級(jí)別的硬件在所使用的虛擬機(jī)和基礎(chǔ)API集合方面做了規(guī)定。對(duì)于高端的設(shè)備,采用CDC(Connected Device Configuration),對(duì)于低端設(shè)備,則采用CLDC(Connected Limited Device Configuration),旨在為只能獲取有限連接的設(shè)備提供基礎(chǔ)配置。

CDC和CLDC僅僅是對(duì)各類設(shè)備中***共性的配置提供了基本的功能集合。在實(shí)際應(yīng)用中,不同的設(shè)備之間仍舊存在著很大的差異性。因此,在Configuration的基礎(chǔ)上,又提出了Profile(簡(jiǎn)表)的概念。Profile規(guī)定的內(nèi)容,是針對(duì)某一類設(shè)備所制訂的規(guī)范和API,有了Profile以后,才真正有了可以建立一個(gè)可運(yùn)行J2ME應(yīng)用程序的完整環(huán)境。MIDP(Mobile Information Device Profile移動(dòng)信息設(shè)備簡(jiǎn)表)以CLDC為基礎(chǔ),它是***個(gè)制訂完成的Profile,也是***個(gè)可供使用的J2ME應(yīng)用程序運(yùn)行環(huán)境。

總的來(lái)說(shuō),J2ME的技術(shù)組成,包括如下三個(gè)要素:

◆ 置(Configuration):為大部分移動(dòng)終端提供了虛擬機(jī)的能力和最基礎(chǔ)的函數(shù)庫(kù),如通信能力、聯(lián)網(wǎng)能力;

◆ 表(Profile):位于Configuration之上,為移動(dòng)終端提供了一系列API,通常包含顯示所需的圖形庫(kù);

◆ 選包(Optional Package):與特定技術(shù)相關(guān)的一系列API,如多媒體播放,藍(lán)牙傳輸能力等。

圖1是對(duì)以上內(nèi)容的一個(gè)直觀表示。

當(dāng)前絕大部分手機(jī)都是基于CLDC+MIDP的配置,在這二者的基礎(chǔ)之上,實(shí)現(xiàn)了各種不同的可選包,從而使得豐富多彩的Java應(yīng)用運(yùn)行在移動(dòng)終端成為可能。

 
圖1 Java技術(shù)概覽

J2ME的規(guī)范體系介紹和現(xiàn)狀

前面已經(jīng)提到過(guò),可以將J2ME理解為一系列的技術(shù)和規(guī)范的總稱。那么這些技術(shù)規(guī)范是怎么產(chǎn)生的,又是由誰(shuí)來(lái)維護(hù)的呢?由在國(guó)際上,有一個(gè)由Sun主導(dǎo)的標(biāo)準(zhǔn)化組織JCP(Java Community Process),該組織根據(jù)領(lǐng)域的不同,分為三個(gè)大的工作方向,即J2EE,J2SE和J2ME。而J2ME領(lǐng)域的標(biāo)準(zhǔn)的制定者,包括業(yè)界知名的運(yùn)營(yíng)商,如Vodafone,Orange,中國(guó)移動(dòng)等;終端制造商,如Nokia,Motorola,Sumsung等;提供Java虛擬機(jī)的廠商,如IBM、Aplix、Esmertec等;以及一些感興趣的公司團(tuán)體。

JCP中的每個(gè)規(guī)范被稱為JSR(Java Specification Request)。各個(gè)JSR分別從不同的角度對(duì)Java虛擬機(jī)的能力進(jìn)行了規(guī)范,并對(duì)應(yīng)一個(gè)數(shù)字編號(hào),如JSR75規(guī)定了Java應(yīng)用如何通過(guò)虛擬機(jī)提供的接口訪問(wèn)終端操作系統(tǒng)的PIM數(shù)據(jù)和文件系統(tǒng)。此外,還包括針對(duì)對(duì)藍(lán)牙、多媒體、短信、彩信等的JSR。而這些規(guī)范的發(fā)布、更新和維護(hù)由JCP來(lái)統(tǒng)一管理,確保了讓業(yè)界不同角色的廠商能夠共同參與定義J2ME平臺(tái)的能力,共同推進(jìn)Java技術(shù)向前發(fā)展。

雖然Java是本著跨平臺(tái)的目的而產(chǎn)生的技術(shù),但是在移動(dòng)終端領(lǐng)域卻沒(méi)能完全實(shí)現(xiàn)這一宏偉的目標(biāo)。由于設(shè)備沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)的軟件運(yùn)行環(huán)境,導(dǎo)致了API的分裂。開(kāi)發(fā)者在針對(duì)某些機(jī)型進(jìn)行開(kāi)發(fā)之前還必須要查詢這個(gè)設(shè)備到底支持什么功能,有哪些是標(biāo)準(zhǔn)的API,哪些是可選包和廠商提供的API。這無(wú)疑給開(kāi)發(fā)帶來(lái)了不便,同時(shí)使得程序的可移植性大大降低。如果你得程序中使用了Nokia的API那么程序很難在其他廠商的機(jī)器上跑。所以,J2ME在不同的移動(dòng)終端平臺(tái)上由于實(shí)現(xiàn)的不同而造成的分裂局面成了待解決的問(wèn)題。

#p#

J2ME發(fā)展的里程碑

為了解決如上的問(wèn)題,在J2ME的發(fā)展過(guò)程中,產(chǎn)生了以下幾個(gè)具有里程碑意義的JSR:

1. JSR185 -- JTWI(Java Technology of Wireless Industry)

該規(guī)范于2003年7月發(fā)布。JTWI并沒(méi)有提出新的技術(shù),也沒(méi)有提供新的API,它對(duì)J2ME的運(yùn)行環(huán)境作了規(guī)范,提供了一個(gè)標(biāo)準(zhǔn)的更加嚴(yán)格的運(yùn)行環(huán)境,這有效地減小了API的分裂并提高了程序的可移植性。JTWI包含以下規(guī)范:

JSR30 -- CLDC1.0:提供了基本的語(yǔ)言類庫(kù),但是不支持浮點(diǎn)運(yùn)算。可以用CLDC1.1替代1.0;

JSR118 -- MIDP2.0 :提供了圖形用戶界面、持久性存儲(chǔ)、游戲和多媒體等功能模塊的支持;

JSR120 – WMA (Wireless Messaging API):提供了短消息功能的支持

JSR135 – MMAPI (Mobile Media API):提供了對(duì)多媒體的全面支持,MIDP2.0中的多媒體部分是MMAPI的子集,該規(guī)范是JTWI中可選的部分。

JTWI的體系架構(gòu)如圖2所示。

 
圖2 JSR185 JTWI體系架構(gòu)圖

2. JSR248 – MSA1.0 (Mobile Service Architecture 1.0)

該規(guī)范于2006年12月發(fā)布,由于JSR185是針對(duì)當(dāng)時(shí)的市場(chǎng)狀況而制定的,主要針對(duì)低端市場(chǎng),而終端的硬件能力是一直不斷的往前發(fā)展的,所以JSR248制定的初衷就是為了滿足不斷發(fā)展變化的市場(chǎng)需求,增加了能充分體現(xiàn)新上市的終端的硬件能力的需求。JSR248在JSR185架構(gòu)的基礎(chǔ)上,增加了新的JSR,在充分考慮到市場(chǎng)現(xiàn)狀的同時(shí),也對(duì)未來(lái)的市場(chǎng)發(fā)展做了預(yù)測(cè),所以在規(guī)范的制定上留了一定的空間,延長(zhǎng)了規(guī)范的生命周期。這些變化,在規(guī)范上具體體現(xiàn)在架構(gòu)設(shè)計(jì)上。JSR248規(guī)定了兩個(gè)級(jí)別的架構(gòu),MSA Subset和MSA,如圖3所示。

除此之外,對(duì)其架構(gòu)中包含的每一個(gè)JSR,MSA1.0都做了相應(yīng)的澄清,例如,在CLDC中規(guī)定,分配給虛擬機(jī)的堆大小為32k字節(jié),而隨著終端能力的發(fā)展,32k字節(jié)的堆大小已經(jīng)不再是瓶頸,而且這樣的大小,已經(jīng)不足以支持一些游戲和多媒體類應(yīng)用的流暢運(yùn)行,所以,在MSA1.0里面,對(duì)CLDC做了將堆大小調(diào)整為1024k字節(jié)的澄清,充分滿足了應(yīng)用的需求,同時(shí)也有利于Java業(yè)務(wù)的開(kāi)展。

 
圖3 JSR248 MSA1.0體系架構(gòu)圖 -- 終端能力

如果說(shuō)圖3是從終端能力的角度對(duì)JSR248進(jìn)行了表示,那么圖4則從不同功能的角度對(duì)JSR248進(jìn)行了另一種表示,可以看出,JSR248在制定的過(guò)程中,比較全面的考慮到了多元化的功能,如安全和電子商務(wù),圖形處理,多種通信方式,用戶的個(gè)人信息等。

 
圖4  JSR248 MSA1.0體系架構(gòu)圖 – 功能范圍

#p#

J2ME編譯技術(shù)的發(fā)展

因?yàn)镴ava語(yǔ)言的設(shè)計(jì)初衷是使用解釋的方式支持應(yīng)用程序的可移植性,早期 Java 運(yùn)行時(shí)的性能級(jí)別遠(yuǎn)低于C和C++之類的編譯性語(yǔ)言。而Java 應(yīng)用程序的性能也經(jīng)常成為討論的熱點(diǎn)。如圖5所示,Java虛擬機(jī)每次遇到一條字節(jié)碼指令,就將其轉(zhuǎn)換成機(jī)器碼,然后給CPU進(jìn)行執(zhí)行,執(zhí)行完機(jī)器碼之后,就把這些機(jī)器碼丟了,接著再翻譯下一條字節(jié)碼的指令,繼續(xù)下去,如此這般,自然效率低下。

 
圖5  Java虛擬機(jī)翻譯Java語(yǔ)言的過(guò)程

近年來(lái),為了提升Java的性能,在編譯技術(shù)方面有了一些新的突破,這一節(jié)將介紹一些比較流行的編譯技術(shù)。

1. JIT(Just In Time)編譯方法

從傳統(tǒng)的虛擬機(jī)處理字節(jié)碼的過(guò)程可以看出,即使下次執(zhí)行到以前執(zhí)行過(guò)的 bytecode 指令,依然要重新翻譯成機(jī)器碼才能執(zhí)行,如此一來(lái),效率當(dāng)然不好。JIT編譯方法的原理是,程序運(yùn)行時(shí),JIT 編譯器選擇將最頻繁執(zhí)行的方法編譯成本地代碼。運(yùn)行時(shí)才進(jìn)行本地代碼編譯而不是在程序運(yùn)行前進(jìn)行編譯(用 C 或 C++ 編寫(xiě)的程序正好屬于后一情形),保證了可移植性的需求。

 
圖6  JIT編譯器原理

Java 運(yùn)行時(shí)供應(yīng)商開(kāi)發(fā)了一些復(fù)雜的動(dòng)態(tài)編譯器,通常稱作JIT(Just-in-time,JIT)編譯器。程序運(yùn)行時(shí),JIT 編譯器選擇將最頻繁執(zhí)行的方法編譯成本地代碼,運(yùn)行時(shí)才進(jìn)行本地代碼編譯而不是在程序運(yùn)行前進(jìn)行編譯(用 C 或 C++ 編寫(xiě)的程序正好屬于后一情形),保證了可移植性的需求。以后再次執(zhí)行到這里時(shí),就不用再翻譯,直接從內(nèi)存取出機(jī)器碼即可執(zhí)行。這么一來(lái),只要內(nèi)存夠大,JIT 編譯器的技術(shù)夠好,那么Java 字節(jié)碼的執(zhí)行速度也可以逼近純編譯式的語(yǔ)言。

2.AOT(Ahead Of Time)編譯方法

雖然 JIT 編譯技術(shù)已經(jīng)能夠提供與靜態(tài)語(yǔ)言性能相當(dāng)?shù)男阅芩?,但是?dòng)態(tài)編譯并不適合于某些應(yīng)用程序,如 GUI 接口之類交互式應(yīng)用程序就是這樣的例子。在這些情況下,AOT編譯可能是合適的解決方案。該方法的原理是,在程序執(zhí)行前生成 Java 方法的本地代碼,以便在程序運(yùn)行時(shí)直接使用本地代碼。目的在于避免 JIT 編譯器的運(yùn)行時(shí)性能消耗或內(nèi)存消耗,或者避免解釋程序的早期性能開(kāi)銷。

 
圖7  AOT編譯器原理

J2ME未來(lái)的發(fā)展趨勢(shì)探討

從本文的分析可以看出,不管是標(biāo)準(zhǔn)化組織、終端廠商、運(yùn)營(yíng)商,還是應(yīng)用開(kāi)發(fā)者,都在促進(jìn)J2ME跨平臺(tái)特性,減少各平臺(tái)間的分裂性,繁榮Java應(yīng)用方面,做出了不少努力。而作為Java業(yè)界的領(lǐng)頭羊,Sun Micro Systems也計(jì)劃打造一款整個(gè)操作系統(tǒng)都是由Java實(shí)現(xiàn)的純Java終端,而ARM公司也有推出專門針對(duì)Java 指令的加速芯片,通過(guò)硬件加速來(lái)提高Java的執(zhí)行效率。由此可見(jiàn),雖然目前J2ME還沒(méi)有***地實(shí)現(xiàn)跨平臺(tái)性和執(zhí)行的高效性,相信隨著業(yè)界的共同努力,Java的發(fā)展空間會(huì)越來(lái)越大。


當(dāng)前題目:透視Java手機(jī)終端技術(shù)發(fā)展
路徑分享:http://www.dlmjj.cn/article/dpcdsop.html