編程高手

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            3 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
          Sun憑借最新的Java技術(shù)試圖將其進(jìn)一步實(shí)現(xiàn)為開發(fā)者的目標(biāo)平臺,然而Java平臺自身卻分成了三種平臺:Standard版、Enterprise版和Micro版。Micro版,也就是所謂的J2ME,從問世伊始就專門設(shè)計(jì)為供內(nèi)存量小和處理能力較低的移動設(shè)備作為Java開發(fā)平臺使用。

          從表面上看,這樣做對那些希望提升應(yīng)用程序的移動計(jì)算能力的開發(fā)者來說是一件好事。然而,“移動設(shè)備”這個(gè)術(shù)語卻涵蓋了相當(dāng)廣泛的領(lǐng)域,包括傳統(tǒng)的個(gè)人數(shù)字助理(PDA)、所謂的智能電話、傳呼機(jī)乃至GPS單元等,它們都具有各不相同的硬件配置。同樣的,這類設(shè)備的市場也支離破碎,同一供應(yīng)商的兩種設(shè)備之間都還存在兼容性問題,更別說不同供應(yīng)商的設(shè)備產(chǎn)品了,在很多情況下簡直就是亂七八糟。
          給這些五花八門的移動設(shè)備提供一種普遍適用的開發(fā)平臺看來多半是不可能的了。所以J2ME定義了兩種類型的規(guī)范,它們攜手提供一種移動Java平臺,這兩種規(guī)范就是configurations 和profiles。Configuration和profile規(guī)范提出了相當(dāng)多的技術(shù)術(shù)語,下面我們就來討論一些。


          Configuration
          J2ME通過對Configuration的抽象來處理大量千差萬別的移動設(shè)備硬件功能。J2ME configuration定義了特定設(shè)備可用的虛擬機(jī)和低級API,同時(shí)提供相應(yīng)的開發(fā)基礎(chǔ)。目前可用的Configuration有兩種,它們是連接設(shè)備配置CDC(Connected Device Configuration)和連接有限設(shè)備配置CLDC(Connected Limited Device Configuration)。


          連接設(shè)備配置

          CDC應(yīng)用于相對內(nèi)存量較大、更強(qiáng)處理器的移動設(shè)備。CDC規(guī)范采用了內(nèi)存優(yōu)化的虛擬機(jī),也就是所謂的CVM,通過它提供等同標(biāo)準(zhǔn)JVM的特性。按照Sun的文檔說明, CDC針對新型PDA、智能通訊設(shè)備和機(jī)頂盒之類的高端設(shè)備。為了能夠受到CDC支持,移動設(shè)備必須至少具備以下條件:

          用于CVM和Java API庫的2 MB內(nèi)存。
          32位微處理器或者控制器。
          可用網(wǎng)絡(luò)連接,最好是高帶寬連接。
          連結(jié)有限設(shè)備配置
          CDC的要求有利于昂貴的移動電話、IR掃描儀或類似產(chǎn)品。CLDC則主要針對那些更輕便、更便宜、不能滿足CDC要求的設(shè)備。

          CLDC采用了更輕型的虛擬機(jī),設(shè)計(jì)為在較低內(nèi)存環(huán)境下運(yùn)行。這種JVM的參考實(shí)現(xiàn)也就是所謂的KVM,為什么要叫KVM呢?這是因?yàn)檫@種虛擬機(jī)的大小是以千字節(jié)度量的。CLDC 的設(shè)備需求如下:

          最低160KB的內(nèi)存,其中128KB用于KVM和運(yùn)行時(shí)庫
          最低16位25-MHz處理器
          有限的用戶界面功能
          沒有(或者間歇的)低帶寬網(wǎng)絡(luò)連接
          由于受到嚴(yán)格的內(nèi)存容量限制,KVM因此缺乏一些完整JVM所提供的特性,這就是說,你可能得改變自己的編程風(fēng)格了。KVM在如此低內(nèi)存要求下不得不在浮點(diǎn)數(shù)學(xué)計(jì)算、反應(yīng)和對finalizers類的支持等方面對性能折中。使用CLDC的開發(fā)者在編譯程序之后必須預(yù)先采用J2ME開發(fā)工具包所提供的一種檢查工具對他們的源代碼進(jìn)行校驗(yàn)。

          profile
          如果說配置為應(yīng)用程序提供了基礎(chǔ),那么profile則提供了應(yīng)用程序的框架。profile定義了一整套J2ME應(yīng)用程序可用的API類而且專門針對給定配置創(chuàng)建。Sun推出了2種可用的參考J2ME profile:基礎(chǔ)(Foundation)和移動信息設(shè)備profileMIDP(Mobile information Device Profile)。

          基礎(chǔ)profile主要用于CDC配置,因而其虛擬機(jī)幾乎等同于標(biāo)準(zhǔn)的虛擬機(jī)。這意味著,使用基礎(chǔ)profile的開發(fā)人員必須訪問完整實(shí)現(xiàn)的J2SE特性集。

          MIDP連同功能較低的CLDC配置一道為開發(fā)今天的移動設(shè)備應(yīng)用程序提供了你最可能用到的Java平臺。MIDP支持J2SE類庫的有限子集而且為在CLDC配置上使用定義了定制的用戶接口和輸入/輸出類。

          編寫一次到處可行?
          兼容性如何呢?J2SE應(yīng)用程序能在J2ME平臺上運(yùn)行嗎?這些問題的答案主要取決于配置和profile的具體應(yīng)用了。J2SE代碼無須或者很少修改即可采用CDC和基礎(chǔ)profile運(yùn)行。然而,正如我們在這里所討論的那樣,由于主機(jī)硬件受到限制,CLDC和MIDP profile只提供了很有限的功能集合。因此它J2SE應(yīng)用程序不大可能在不加修改的情況下就運(yùn)行在這類平臺上,除非它把自己限制在兩種平臺的API交集之內(nèi)(嚴(yán)重地限制了其功能)。因?yàn)镃IDC的要求對應(yīng)了今天大多數(shù)手持設(shè)備的功能,所以任何J2SE應(yīng)用軟件想不經(jīng)修改就運(yùn)行在給定的設(shè)備上是值得懷疑的。你多半得修改需要移植到J2ME的應(yīng)用軟件。但也別緊張。從保住飯碗的角度看這未嘗不是好事。

          posted on 2009-10-19 11:59 米老鼠 閱讀(116) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 贵南县| 遵义县| 武城县| 和龙市| 高唐县| 湟中县| 浪卡子县| 方城县| 洞口县| 新竹市| 扎囊县| 长宁县| 浦江县| 武陟县| 华宁县| 安康市| 化德县| 乡宁县| 衡阳县| 安吉县| 崇义县| 土默特右旗| 肥东县| 宾阳县| 泌阳县| 蚌埠市| 承德市| 龙州县| 光泽县| 河北省| 弥勒县| 昌江| 蓬溪县| 白城市| 华亭县| 福建省| 毕节市| 宜兰市| 托克托县| 湘潭县| 吉木乃县|