<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sung in Blog

               一些技術(shù)文章 & 一些生活雜碎
     

    J2ME (Java 2, Micro Edition) 於 1999 年 6 月由 Sun Microsystems 第一次推向 Java 團(tuán)體,它是一項(xiàng)能滿足 Java 開發(fā)人員的不同需求的廣泛倡議的一部分。 在 Java 2 平臺下,Sun 重新定義了 Java 技術(shù)的架構(gòu),將其分為三個(gè)版本。標(biāo)準(zhǔn)版 (J2SE) 為桌面開發(fā)和低階商務(wù)應(yīng)用提供了可行的解決方案。企業(yè)版 (J2EE) 是為導(dǎo)向以企業(yè)為環(huán)境而開發(fā)應(yīng)用程式的專門開發(fā)人員而準(zhǔn)備的。而小型版是致力於消費(fèi)產(chǎn)品和嵌入式設(shè)備開發(fā)人員的最佳選擇。儘管早期人們對它看好而且 Java 開發(fā)人員團(tuán)體中的熱衷人士也不少,然而,J2ME 最近才開始從其影響更大的同屬產(chǎn)品 J2EE 和 J2SE 的陰影中走出其不成熟期。

    J2ME 的嶄露頭角對 Sun,對跨通訊產(chǎn)業(yè)、資訊產(chǎn)業(yè)和消費(fèi)類電子產(chǎn)品業(yè)的公司,還有對 Java 開發(fā)人員來說的確是個(gè)好訊息。Java 技術(shù)將一大批設(shè)備(從伺服器到主機(jī)式和移動(dòng)設(shè)備)集中到一種語言和一種技術(shù)之下。雖然這些設(shè)備的應(yīng)用不同,但 Java 技術(shù)為這些不同點(diǎn)建起了一座橋樑,使原本致力於單一領(lǐng)域的開發(fā)人員能將其技能發(fā)揮到跨越不同設(shè)備和應(yīng)用的領(lǐng)域。

    如果您是初次接觸 J2ME,您會驚奇地發(fā)現(xiàn) J2ME 沒有技術(shù)規(guī)範(fàn)。這是因?yàn)?J2ME 不是一個(gè)單獨(dú)的技術(shù)規(guī)範(fàn),而是相關(guān)技術(shù)規(guī)範(fàn)的一個(gè)家族,這些規(guī)範(fàn)定義了 Java 技術(shù)在資源限制的設(shè)備(即能源消耗少於普通主機(jī)式的設(shè)備)中的形態(tài)。

    在本文中,我們將討論今日的 J2ME。我會講述定義 J2ME 目前結(jié)構(gòu)的各個(gè)元件,並為那些對是否使用 J2ME 持觀望態(tài)度的使用者提供該技術(shù)近期發(fā)展的概覽。我還將為您提供針對嵌入式設(shè)備的 Java 平臺的二種早期實(shí)現(xiàn)方法:KJava 和 PersonalJava 的最新狀況。我們首先講述 J2ME 目前的二項(xiàng)順序原則:設(shè)定和簡檔。

    了解 J2ME

    首先考慮一下可能用到 J2ME 的各類設(shè)備。這類設(shè)備包括 PDA、蜂巢式電話和 B.B Call 、電視機(jī)機(jī)上盒、遠(yuǎn)端遙控裝置和許多其他嵌入式設(shè)備。很明顯,要為所有這些設(shè)備定義一種最最佳化,或者接近最最佳化的單一技術(shù)是不可能的。處理器能源、記憶體、固定記憶體和使用者介面的差異非常之大。

    為解決這一問題,Sun 將適合 J2ME 的設(shè)備的定義劃分成各個(gè)部分,然後再進(jìn)一步細(xì)分。在第一步的劃分中,Sun 將各種設(shè)備按照處理效能、記憶體和儲存能力劃分成兩大類,此時(shí)並不考慮使用目的。公司然後定義 Java 語言的一個(gè)剝離版本,它能夠在每一類設(shè)備的限制下工作,而同時(shí)提供最低限度的 Java 語言功能性。

    然後,Sun 在這二個(gè)種類別中找出功能類似的設(shè)備類 -- 比如說所有的蜂巢電話無論哪個(gè)生產(chǎn)廠商都?xì)w為一類。透過 Java Community Process 中的合作夥伴的協(xié)助,Sun 然後再針對每個(gè)縱向分類定義了附加的功能性。

    第一部分建立 J2ME 目前的二種設(shè)定:連接設(shè)備設(shè)定 (CDC) 和連接限制設(shè)備設(shè)定 (CLDC)。 設(shè)定是 Java 的虛擬機(jī) (JVM) 和為選擇的一組設(shè)備提供執(zhí)行環(huán)境的最小類別庫集和 API。設(shè)定指定了 Java 語言的最小公分母子集,它符合為其而開發(fā)的設(shè)備家族所強(qiáng)制的資源限制。

    由於使用者介面、功能和用途中的這種極大差異,甚至在同一設(shè)定中,一個(gè)典型的設(shè)定不能像使用者介面工具套件和固定儲存 API 那樣定義這樣的重要片斷。而該功能性的定義被稱為簡檔。

    J2ME 簡檔是由從事例如 B.B Call 或蜂巢電話的特定種類設(shè)備的某業(yè)界領(lǐng)先集團(tuán)指定的一系列 Java API。每個(gè)簡檔建立在由其設(shè)定提供的 Java 語言的最小共分母子集的頂部,並補(bǔ)充該設(shè)定。目前有二個(gè)簡檔:補(bǔ)充 CDC 的基礎(chǔ)簡檔和補(bǔ)充 CLDC 的移動(dòng)資訊設(shè)備簡檔 (MIDP)。更多的簡檔正處於開發(fā)階段,規(guī)範(fàn)和參考實(shí)現(xiàn)方法即將出臺。

    圖 1 說明了 J2ME 及其設(shè)定和簡檔與 J2SE 和 J2EE 之間的關(guān)係。


    圖 1. J2EE、J2SE 和 J2ME 之間的關(guān)係
    J2EE、J2SE 和 J2ME 之間的關(guān)係

    如上所述,J2ME 不是單一的規(guī)範(fàn)而是一系列規(guī)範(fàn),每一項(xiàng)適用於特定的一系列要求。在下文中,我將講述在 Java 2 平臺下每一項(xiàng)規(guī)範(fàn)和它與其他規(guī)範(fàn)之間的關(guān)係。



    回到頂端


    CLDC: 512 KB 以下的應(yīng)用程式

    讓我們首先來分析一下較小的二個(gè)設(shè)定。根據(jù)其規(guī)範(fàn),CLDC 服務(wù)於具有 512 KB 以下記憶體、有限能源供應(yīng)(通常使用電池)、有限或非持續(xù)網(wǎng)路連接和簡單(或無)使用者介面的設(shè)備。這是最適合用來建立蜂巢電話、 B.B Call 、PDA 和類似設(shè)備的設(shè)定。

    為了使 CLDC 適應(yīng)如此嚴(yán)格的限制,開發(fā)人員不得不放棄 J2SE 中的許多功能。實(shí)際上,當(dāng)完成設(shè)計(jì)後,CLDC 只包括四個(gè)套件:其中三個(gè)來自標(biāo)準(zhǔn) Java 規(guī)範(fàn)(java.lang、java.util 和 java.io),另一個(gè)專門針對 CLDC (javax.microedition)。

    甚至這三個(gè)標(biāo)準(zhǔn)套件的內(nèi)容也被縮減了。在 J2SE 中包含 47 個(gè)類別和介面的 java.util 包在 CLDC 中縮減至 10 個(gè)類。那些被保留的類的功能性足以建構(gòu)應(yīng)用程式 -- 省略的功能性由 MIDP 提供,我將在下文中講述。

    表 1 羅列了類的數(shù)量,以及每個(gè) CLDC 包的介面,讓您清楚地了解 CLDC 有多小。

    表 1. 每個(gè) CLDC 套件中類別和介面的數(shù)量

    套件 描述 類別和介面
    java.io 系統(tǒng)輸入輸出 18
    java.lang Java 程式設(shè)計(jì)語言的基本類 38
    java.util 集合、日期和時(shí)間支援、各式實(shí)用工具類別 10
    javax.microedition 類屬連接 10

    CLDC 不需要一致的實(shí)現(xiàn)方法來支援例如反映、結(jié)束、使用者定義的類裝載器或浮點(diǎn)演算法等功能,這毫無價(jià)值。然而,CLDC 並不能提供建構(gòu)有用應(yīng)用程式的所有功能性。很明顯,它缺少使用者介面這一大多數(shù)應(yīng)用程式必需的功能。CLDC 從來就不是一個(gè)完整的解決方案。它的設(shè)計(jì)只是個(gè)開頭,是可建立提供附加功能性和定位特定產(chǎn)品類的簡檔的通用基礎(chǔ)。MIDP 就是這樣一個(gè)簡檔。



    回到頂端


    已定義的 MIDP -- 那麼 MIDlet 又是什麼呢?

    MIDP 為 CLDC 加入建立諸如蜂巢電話、 B.B Call 和簡單 PDA 應(yīng)用程式必需的功能性。MIDP 的功能性包括支援計(jì)時(shí)器、簡單固定記憶體、透過 HTTP 的連網(wǎng)和使用者介面。

    CLDC 中 3 項(xiàng)丟失的類別已加入到 java.lang 和 java.util 包中,使 MIDP 支援計(jì)時(shí)器。這些類別是:

    • java.util.Timer
    • java.util.TimerTask
    • java.lang.IllegalStateException

    所有 MIDP 剩餘的功能包含在 J2ME 中唯一的四個(gè)套件中。表 2 羅列了這四個(gè)剩餘的套件,以及包的描述和包中含有的類別和介面。

    表 2. 組成 MIDP 的 4 個(gè) javax.microedition 包

    描述 類別和介面
    javax.microedition.rms 固定記錄儲存 10
    javax.microedition.midlet MIDlet 和其環(huán)境之間的介面 2
    javax.microedition.io 支援 HTTP 協(xié)定 1
    javax.microedition.lcdui 使用者介面工具套件 24

    javax.microedition.midlet 包保證了進(jìn)一步的觀察,它為 Java 開發(fā)引入了一個(gè)新特性。 MIDlet 這一名稱提供給寫入 MIDP 規(guī)範(fàn)的應(yīng)用程式。所有這些應(yīng)用必須適合 javax.microedition.midlet 包中定義的框架。

    MIDlet 框架類似 J2SE 提供的小應(yīng)用程式框架。MIDlet 是相關(guān)類別的集合,其中一類別擴(kuò)充了 javax.microedition.midlet.MIDlet 類。由 MIDlet 所在設(shè)備提供的 MIDlet 環(huán)境透過傳遞使其開始、暫停和自毀的事件來控制 MIDlet。圖 2 展示了 MIDlet 的生命週期。


    圖 2. MIDlet 的生命週期
    MIDlet 的生命週期

    請參閱 參考資料了解更多 MIDlet 的相關(guān)內(nèi)容。



    回到頂端


    CDC 補(bǔ)充 CLDC 留下的問題

    目前 2 個(gè)已定義的 J2ME 的設(shè)定的大部分是 CDC,它最適合用來建立電視機(jī)機(jī)上盒、娛樂系統(tǒng)、汽車導(dǎo)航系統(tǒng)和其他這類規(guī)模的應(yīng)用程式。

    在資源限制的條件下,CDC 補(bǔ)充了 CLCD 的不足,並針對大於 2 MB 記憶體的設(shè)備,它能支援標(biāo)準(zhǔn) Java 虛擬機(jī)和 Java 程式設(shè)計(jì)語言的完整實(shí)現(xiàn)。簡而言之,CDC 非常接近您熟悉的 Java 規(guī)範(fàn)。

    當(dāng)只需要相容 CLDC 的虛擬機(jī)來支援標(biāo)準(zhǔn) Java 虛擬機(jī)功能性的一個(gè)子集時(shí),那麼 CDC 指定的虛擬機(jī)必須和標(biāo)準(zhǔn) JVM 特性相容。這意味著如果包括對本地方法呼叫的支援,CDC JVM (或 CVM)必須符合 JNI (Java 本地介面) 1.1。如果包括對調(diào)試的支援,那就必須符合 JVMDI (Java 虛擬機(jī)調(diào)試介面)。如果需要包括簡檔支援,那就必須遵從 JVMPI (Java 虛擬機(jī)簡檔介面)。

    在類別庫中,CDC 提供支援全相容 Java 2 虛擬機(jī)所必需的最小 API 集。這一 API 集包括所有為 CLCD 定義的 API 和針對檔 I/O、連網(wǎng)、進(jìn)階安全性、物件序列等 API。表 3 羅列了在 CDC 規(guī)範(fàn)下提供的包、每個(gè)套件中的類別和介面的數(shù)量和每個(gè)包的描述。

    表 3. 在 CDC 規(guī)範(fàn)下的所有套件

    套件 描述 類別和介面
    java.io 系統(tǒng)輸入與輸出 62
    java.lang Java 程式設(shè)計(jì)語言基本類 77
    java.lang.ref 特別參考類別 5
    java.lang.reflect 反映支援 12
    java.math Math 支援 1
    java.net 網(wǎng)路類別和工具 23
    java.security 安全支援 36
    java.security.cert 憑證支援 4
    java.text 文件處理類別 13
    java.util 集合、日期和時(shí)間支援,各種實(shí)用工具類別 47
    java.util.jar Jar 檔支援 7
    java.util.zip Zip 檔支援 9
    javax.microedition 類屬連接 10

    很明顯,表 3 中缺少屬於 java.awt 套件中的類別和介面。與 CLDC 的情形相同,CDC 不支援任何使用者介面。這還是由於設(shè)備與設(shè)備之間的使用者介面差異很大所造成的。必須為 CDC 加入合適的簡檔以獲得使用者介面支援。

    CVM 是指定和 CDC 一起使用的 Java 虛擬機(jī),它具有許多超出支援 CDC 所必需的有趣功能。它的移植性很強(qiáng)、支援可 ROM 的類別、允許快速執(zhí)行緒同步操作,並提供對本地執(zhí)行緒的支援。簡而言之,它是為支援經(jīng)常出現(xiàn)在嵌入式應(yīng)用中的作業(yè)系統(tǒng)而設(shè)計(jì)的。



    回到頂端


    基礎(chǔ)簡檔

    基礎(chǔ)簡檔是唯一的為 CDC 而定義的簡檔。它大大地?cái)U(kuò)充了 CDC 提供的 API。然而,它並不提供使用者介面 API。正如其名“基礎(chǔ)”所示,該簡檔必須透過一個(gè)或多個(gè)提供使用者介面支援的附加簡檔來擴(kuò)充 -- 例如個(gè)人簡檔 (JSR 62),它正處於開發(fā)階段並有可能最終替代 PersonalJava 的簡檔。

    表 4 羅列了基礎(chǔ)簡檔中的,也包括 CDC 中的所有類別和介面的數(shù)量。這一設(shè)定及其主要簡檔提供的所有類別和介面與我們習(xí)慣使用的 Java 平臺類似。

    表 4. 基礎(chǔ)類別和介面(包括 CDC 套件)

    描述 類別和介面
    java.io 系統(tǒng)輸入與輸出 74
    java.lang Java 程式設(shè)計(jì)語言基本類 79
    java.lang.ref 特別參考類別 5
    java.lang.reflect 反映支援 12
    java.math Math 支援 1
    java.net 網(wǎng)路類別和工具 35
    java.security 安全支援 63
    java.security.acl 存取控制表支援 8
    java.security.cert 憑證支援 15
    java.security.interface 安全介面類 9
    java.security.spec 關(guān)鍵規(guī)範(fàn)和運(yùn)算法則參數(shù)規(guī)範(fàn) 14
    java.text 文件處理類別 23
    java.util 收集、日期和時(shí)間支援,各種實(shí)用工具類別 54
    java.util.jar Jar 檔支援 8
    java.util.zip Zip 檔支援 17
    javax.microedition 類屬連接 11



    回到頂端


    舊的規(guī)範(fàn):KJava 和 PersonalJava 重新露面

    如果近兩年一直關(guān)注著 Sun 對資源限制設(shè)備的支援,那麼您一定對 KJava 和 PersonalJava 很了解。PersonalJava 是 Sun 首次為資源限制設(shè)備建立 Java 平臺版本的嘗試。Sun 的 Spotless 研究計(jì)畫產(chǎn)生的 KJava 是 Sun 在 1999 年 JavaOne 中為 Palm 而開發(fā)的 Java 平臺版本。

    由於為 PersonalJava 和 KJava 撰寫的程式很多,許多開發(fā)人員非常關(guān)切這兩種平臺未來的發(fā)展如何。因?yàn)樗鼈兏髯远吉?dú)立地發(fā)展,所以關(guān)於這兩種平臺的資訊並不多,但我會告訴您我所知道的資訊。

    PersonalJava 正逐漸轉(zhuǎn)變成 CDC 的個(gè)人簡檔。尚處於開發(fā)階段的這一簡檔將處於基礎(chǔ)簡檔的頂部,並且將與 PersonalJava 版本 1.1 和 1.2 向後相容。

    KJava 的情形就不十分明朗。Sun 非常關(guān)注 KJava 的實(shí)驗(yàn)狀態(tài),並提醒開發(fā)人員注意它對 API 的不斷變化,甚至重大變化。Palm Inc. 目前正為 CLDC 定義 PDA 簡檔,它將取代 KJava。不幸的是,現(xiàn)在尚無法明確地知道要對現(xiàn)有的 KJava 應(yīng)用程式做出多少修改才能使其與新簡檔協(xié)同工作。



    回到頂端


    總結(jié)

    J2ME 的前景很明顯要比 J2SE 甚至 J2EE 來的複雜,但是複雜性也預(yù)告著 J2ME 能夠支援的設(shè)備的多樣性。總之,以我的方法論習(xí)一種特定的設(shè)定和簡檔並不很困難。許多情況下,J2ME 讓我想起 1995 年的 Java 語言。

    如果試圖決定是否在嵌入式應(yīng)用程式中使用 J2ME,您會發(fā)現(xiàn)有許多無法回答的問題。例如,我仍然不清楚何時(shí) J2ME 的優(yōu)勢能超越它的成本,特別是鑒於虛擬機(jī)和 API 在已經(jīng)資源限制的環(huán)境下使用的資源。

    然而,隨著規(guī)範(fàn)的成型和更多簡檔的加入,我確信答案會出現(xiàn),而且 J2ME 將鞏固其在嵌入式設(shè)備領(lǐng)域的地位。透過 CDC 和 CLDC,Sun 已採取重要的步驟為該領(lǐng)域的開發(fā)人員的各種需求提供各種重要的服務(wù)。基礎(chǔ)簡檔剛開始鞏固,個(gè)人簡檔將在幾個(gè)月內(nèi)出臺。作為開發(fā)人員,我們將與 J2ME 一同發(fā)展,如果僅是實(shí)驗(yàn)性的,並且使 Sun 以及其他在無線和嵌入設(shè)備市場的商家明確我們的需求。

    posted on 2005-10-28 19:58 Sung 閱讀(561) 評論(1)  編輯  收藏 所屬分類: Java

    FeedBack:
    # re: J2ME 走向成熟
    2005-11-03 16:06 | 備忘錄
    據(jù)說j2me將有大變動(dòng)  回復(fù)  更多評論
      
    主站蜘蛛池模板: 亚洲av永久综合在线观看尤物| 边摸边吃奶边做爽免费视频99| 好爽又高潮了毛片免费下载| 亚洲精品国产suv一区88| 亚洲综合国产精品第一页| 久久青草国产免费观看| 国产精品亚洲综合久久| 亚洲精品夜夜夜妓女网| 美女视频黄的全免费视频| 国产精品永久免费视频| 亚洲va在线va天堂va手机| 中文字幕亚洲日韩无线码| 国产成人精品免费视| 免费播放美女一级毛片| 久久夜色精品国产噜噜噜亚洲AV| 日韩精品视频免费在线观看| 波多野结衣免费一区视频| 亚洲精品美女久久久久久久| 亚洲av无码成人黄网站在线观看| 精品国产免费观看久久久| 久久永久免费人妻精品下载| 免费一级毛suv好看的国产网站| 久久久亚洲欧洲日产国码aⅴ| 免费va人成视频网站全| 亚洲天堂免费在线| 中国国产高清免费av片| 亚洲成AV人片在WWW| 亚洲综合一区二区国产精品| 亚洲精品国产高清不卡在线| 久久精品网站免费观看| 午夜精品免费在线观看| 深夜久久AAAAA级毛片免费看| 亚洲伊人久久大香线蕉影院| 亚洲成AV人片在线播放无码| 亚洲AV成人精品日韩一区18p| 日本三级2019在线观看免费| 国产免费无码一区二区| 人妻免费久久久久久久了| 亚洲色成人网站WWW永久四虎| 亚洲资源在线观看| 亚洲AV日韩AV天堂一区二区三区 |