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

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

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

    sharky的點(diǎn)滴積累

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      56 隨筆 :: 104 文章 :: 10 評(píng)論 :: 0 Trackbacks

    在今天的生活中,個(gè)性化的智能信息用品已經(jīng)是必須品。這些用品包括移動(dòng)電話、機(jī)頂盒、雙向?qū)ず魴C(jī)、智能卡和掌上電腦等。在幾年前開(kāi)發(fā)人員很難想像能夠用一種統(tǒng)一的開(kāi)發(fā)方式來(lái)開(kāi)發(fā)運(yùn)行在這些設(shè)備上的程序,也很難想像在這些設(shè)備上開(kāi)發(fā)兼容的程序,而現(xiàn)在借助 Java 的能力這些都成為可能。

    Sun 公司將 J2ME (Java 2 Micro EditionJava 2微型版)定義為“一種以廣泛的消費(fèi)性產(chǎn)品為目標(biāo)的、高度優(yōu)化的 Java 運(yùn)行時(shí)環(huán)境”。自從 1999 6 月在 JavaOne Developer Conference 上聲明之后,J2ME 進(jìn)入了小型設(shè)備開(kāi)發(fā)的行列。通過(guò) Java 的特性,遵循 J2ME 規(guī)范開(kāi)發(fā)的 Java 程序可以運(yùn)行在各種不同的小型設(shè)備上。

    Sun 公司希望借助J2ME 這把利劍對(duì)嵌入式設(shè)備這個(gè)混亂的領(lǐng)域進(jìn)行統(tǒng)一,讓Java 的范圍擴(kuò)展到所有的電子設(shè)備開(kāi)發(fā)上,按照現(xiàn)在的發(fā)展速度,J2ME 很快將被廣泛應(yīng)用于消費(fèi)和嵌入式設(shè)備中。

    與以前 Sun 公司推出的J2EE (Java 2 Enterprise EditionJava 2企業(yè)版)J2SE (Java 2 Standard EditionJava 2標(biāo)準(zhǔn)版)規(guī)范相比,J2ME 不是一個(gè)單獨(dú)的技術(shù)規(guī)范,而是一系列技術(shù)規(guī)范總稱。這些規(guī)范定義了 Java 技術(shù)在資源限制的設(shè)備中的表現(xiàn)形式。J2ME 主要適用于小型嵌入式設(shè)備,這些設(shè)備與PC或是服務(wù)器設(shè)備相比沒(méi)有統(tǒng)一的硬件標(biāo)準(zhǔn)、外觀與操作方式,其功用也是千差萬(wàn)別。但是J2ME 在適用于這些設(shè)備的同時(shí)也保留了 Java 的傳統(tǒng)特性,即任何時(shí)間和任何地點(diǎn)的代碼具有可移植性、部署靈活性、安全的網(wǎng)絡(luò)傳輸性,以及代碼穩(wěn)定性。正是因?yàn)槿绱耍_(kāi)發(fā)人員才可以借助J2ME 力量讓編寫(xiě)的程序能夠運(yùn)行在其他型號(hào)或廠商的設(shè)備上。

    1.1.2    1.1.2  JVM CVM KVM的演變

    Java 程序是以邊解釋邊執(zhí)行的方式運(yùn)行的,所有的Java 程序都會(huì)被編譯成為二進(jìn)制代碼并運(yùn)行在Java虛擬機(jī)上( J2EEJ2SE 中的Java 虛擬機(jī)簡(jiǎn)稱為 JVM)。而J2ME針對(duì)的設(shè)備主要是嵌入式和消費(fèi)類的設(shè)備,因?yàn)檫@些設(shè)備內(nèi)存和處理器的限制,所以J2ME 所包含的類庫(kù)也比較小一些,相對(duì)于J2SE的類庫(kù)來(lái)說(shuō)作了一些剪裁,虛擬機(jī)的功能也相對(duì)簡(jiǎn)單。

    J2ME 中有兩類虛擬機(jī):CVM (C Virtual MachineC虛擬機(jī)) KVM (K Virtual MachineK虛擬機(jī))KVM CVM均可被看作是一種 Java 虛擬機(jī),是 JVM 的子集,在功能上都是 JVM 的縮減版。這兩類虛擬機(jī)的適用范圍并不相同,簡(jiǎn)單地說(shuō),CVM 的功能比KVM 功能更為強(qiáng)大。在讀者閱讀完1.1.31.1.4節(jié)后,將會(huì)更清楚地了解這兩種虛擬機(jī)的具體適用范圍。

    運(yùn)行在J2ME 上的程序大致分為兩種:

    l           J2ME Application :運(yùn)行在CVM之上。

    l           MIDlet (Mobile Information Devices let,移動(dòng)信息設(shè)備小程序):程序運(yùn)行在KVM之上,MIDlet 程序的開(kāi)發(fā)也就是本書(shū)要講述的內(nèi)容。

    1.1.3    1.1.3  CDCCLDC介紹

    J2ME面對(duì)的是大量各種不同的小型嵌入式設(shè)備,它們?cè)谕庥^和功能上均各不相同。J2ME將這些設(shè)備進(jìn)行分類,將一些共性提取出來(lái)形成適合于某個(gè)范疇中設(shè)備可用的規(guī)范,稱為“配置”。讀者也可以將配置理解成為對(duì)硬件的描述,所以通過(guò)定義配置的方法就能夠清楚地描述硬件功能。

    J2ME 中配置可以分為兩類:

    l           CDC (Connected Device Configuration,連接設(shè)備配置),運(yùn)行在這一配置上的程序稱為J2ME Application,在CVM上進(jìn)行解釋。

    l           CLDC(Connected Limited Device Configuration,連接限制設(shè)備配置),運(yùn)行在這一配置上的程序稱為MIDlet ,在KVM上進(jìn)行解釋。

    從設(shè)備的硬件功能角度來(lái)看, CDC主要針對(duì)32位的處理器主頻通常在75MHz以上,內(nèi)存可能在14MB;而CLDC主要針對(duì)16位、32位主頻在 16MHz以上的處理器,設(shè)備的內(nèi)存比較少,可能只有512KB,甚至更少。因?yàn)?/SPAN> CDC CLDC 針對(duì)的設(shè)備CPU 處理能力和內(nèi)存是不一樣的,所以它們所使用的虛擬機(jī)和核心類庫(kù)也不相同,CDC的核心類庫(kù)也比CLDC的核心類庫(kù)要大。CDC用的虛擬機(jī)是CVM,而CLDC用的是KVMCVM KVM 包含更多的功能和支持更多的特性。

    從設(shè)備的用途和功能的角度來(lái)看,CDC 針對(duì)的設(shè)備主要是數(shù)字電視、機(jī)頂盒、網(wǎng)絡(luò)電話、車載計(jì)算設(shè)備等。這些設(shè)備的特點(diǎn)是有線連接、電源穩(wěn)定、設(shè)備資源比較受限。而 CLDC 針對(duì)的設(shè)備主要是移動(dòng)手持設(shè)備,例如 PDAPOS 機(jī)和智能手機(jī)。這些設(shè)備的特點(diǎn)是無(wú)線連接、沒(méi)有穩(wěn)定的電源供應(yīng)(通常使用電池)、設(shè)備資源極少。目前在國(guó)內(nèi)外用得比較廣泛的CLDC是在智能手機(jī)上的應(yīng)用。

    1.1.4    1.1.4  MIDP介紹

    J2ME 使用配置(CDCCLDC)和簡(jiǎn)表(Profile)定制JRE(Java Runtime Environment Java 運(yùn)行時(shí)環(huán)境)。一個(gè)完整的 JRE由配置和簡(jiǎn)表組成,配置決定了所使用的 JVM(可能是CVM KVM),而簡(jiǎn)表通過(guò)定義特定的類來(lái)為應(yīng)用程序提供功能上的支持,一個(gè)簡(jiǎn)表定義了設(shè)備所提供的 API 集合。

    對(duì)比前面簡(jiǎn)表的定義可以知道,MIDP (Mobile Information Devices Profile,移動(dòng)信息設(shè)備簡(jiǎn)表)是簡(jiǎn)表的一種,定義了移動(dòng)信息設(shè)備的類型和提供相關(guān)的API (Application Programming Interface,應(yīng)用程序編程接口)集合, MIDP 所定義的功能更加面向用戶,而且比 CLDC 更高級(jí)。

    具體地講,在進(jìn)行MIDlet程序開(kāi)發(fā)時(shí)所使用的API 來(lái)自于:

    l           CLDC v1.0規(guī)范中定義的4個(gè)包 java.iojava.langjava.util javax.microedition.io ,提供Java語(yǔ)言和CLDC 設(shè)備所支持的基本功能。

    l           MIDP 所定義的其他包有javax.microedition.midlet javax.microedition.lcdui javax.microedition.lcdui.gamejavax.microedition.rms 等,提供諸如程序生命周期控制、用戶界面、游戲、持久存儲(chǔ)這樣的功能。

    為了理解虛擬機(jī)、配置和簡(jiǎn)表之間的關(guān)系,圖1.1 將這3個(gè)概念進(jìn)行對(duì)比。在對(duì)比J2ME 內(nèi)的不同虛擬機(jī)、配置和簡(jiǎn)表的同時(shí),也將J2ME 結(jié)構(gòu)和J2SE 結(jié)構(gòu)進(jìn)行了對(duì)比。

    1.1.4.1.1 1.1  不同虛擬機(jī),配置與簡(jiǎn)表之間的關(guān)系

    在圖1.1 中出現(xiàn)了 KJava 這個(gè)字眼,這對(duì)于了解過(guò)手機(jī)程序開(kāi)發(fā)的朋友一定不陌生,曾經(jīng)有一段時(shí)間KJava 程序開(kāi)發(fā)幾乎等同于手機(jī)上的 Java 程序開(kāi)發(fā)。在這里,為了糾正一下這個(gè)看法有必要解釋清楚 KJava 所代表的含義。KJava Sun 公司開(kāi)發(fā)的一種簡(jiǎn)表,它包含了 KJava APIKJava并不作為一種完整的、功能齊全的簡(jiǎn)表,Sun 公司最初推出 KJava 時(shí)只是作為一種示范簡(jiǎn)表,即用于演示簡(jiǎn)表如何與 CLDC 一起工作。由于 KJava 出現(xiàn)較早,因此早期的部分手機(jī)設(shè)備都選擇支持KJava 所定義的API。因此,如果把手機(jī)上的Java編程都稱為KJava編程說(shuō)法那是不正確的,把KJava程序開(kāi)發(fā)和MIDP 程序開(kāi)發(fā)等同也是不正確的。由于歷史原因,到目前為止 KJava 已經(jīng)被廣泛使用,但是作者相信 MIDP 將會(huì)逐漸取代KJava的地位,畢竟MIDP 是一個(gè)更為開(kāi)放的標(biāo)準(zhǔn)。

    MIDP KJava 一樣,也是建立在 CLDC 之上的,并且提供一個(gè)標(biāo)準(zhǔn)的運(yùn)行時(shí)環(huán)境,允許在終端用戶設(shè)備上動(dòng)態(tài)地部署新的應(yīng)用程序和服務(wù)。與KJava不同點(diǎn)在于,MIDP 是一個(gè)公共的、為移動(dòng)設(shè)備設(shè)計(jì)的工業(yè)標(biāo)準(zhǔn)簡(jiǎn)表,它不依賴某個(gè)特定的商家。對(duì)于移動(dòng)應(yīng)用程序開(kāi)發(fā)來(lái)說(shuō),它是一個(gè)完整的、受支持的基礎(chǔ)。因此現(xiàn)在新的智能手機(jī)設(shè)備,如果支持J2ME 都會(huì)選擇支持MIDP ,而不是KJava

    MIDP簡(jiǎn)表外,目前還存在其他類型的簡(jiǎn)表,例如:

    l           Foundation Profile(基礎(chǔ)簡(jiǎn)表):提供除了用戶界面以外 J2SE 所能夠提供的標(biāo)準(zhǔn)類庫(kù)。

    l           Personal Profile(個(gè)人簡(jiǎn)表):針對(duì)那些資源相對(duì)有限,但是對(duì)網(wǎng)絡(luò)訪問(wèn)要求很高的設(shè)備,例如Web-TV、汽車導(dǎo)航系統(tǒng)等。

    相信在以后隨著J2ME 更廣泛地推廣和應(yīng)用,會(huì)逐漸出現(xiàn)其他類型的簡(jiǎn)表。

    在功能方面,MIDP v1.0規(guī)范中包括:

    l           應(yīng)用的下載。

    l           應(yīng)用的生命周期。

    l           端到端的傳輸協(xié)議,例如HTTP (Hyper Text Transmission Protocol ,超文本傳輸協(xié)議)

    l           網(wǎng)絡(luò)連接。

    l           持續(xù)性存儲(chǔ)。

    l           定時(shí)器。

    l           用戶界面。

    現(xiàn)在MIDP最新的規(guī)范為 v2.0MIDP v2.0新增加了以下內(nèi)容:

    l           應(yīng)用程序的下載和計(jì)費(fèi)。

    l           HTTP 的基礎(chǔ)上提供了端到端的SHTTP(Secure Hyper Text Transmission Protocol ,安全超文本傳輸協(xié)議)安全傳輸。

    l           應(yīng)用程序的數(shù)字簽名和域的安全模式。

    l           MIDlet push 注冊(cè)。

    在安全方面,J2SE Java 程序是運(yùn)行在沙箱機(jī)制下的,為了限制程序?qū)Y源的訪問(wèn),資源被分為兩類:受限資源和非受限資源。當(dāng)程序運(yùn)行時(shí),只有那些被信任的程序才能夠訪問(wèn)受限資源與調(diào)用相關(guān)的 API。在 J2ME 中為了達(dá)到安全的目的也繼承了沙箱機(jī)制,此外,MIDP v2.0引入了信任的 MIDlet 的新概念。當(dāng)無(wú)線信息設(shè)備檢測(cè)到一個(gè)程序是被信任的程序時(shí),則此程序允許訪問(wèn)安全機(jī)制所規(guī)定的API。例如,這些API 可以訪問(wèn)手機(jī)內(nèi)地址本,或者可能是允許訪問(wèn)無(wú)線網(wǎng)絡(luò)。

    1.1.5    1.1.5  CLDC / MIDP 架構(gòu)介紹

    J2ME / CLDC / MIDP架構(gòu)是專為移動(dòng)通訊設(shè)備而設(shè)計(jì)的。有了前面的介紹,下面再用圖1.2 說(shuō)明MIDPCLDC之間的關(guān)系。

    1.1.5.1.1 1.2  CLDC MIDP之間的關(guān)系

    在圖1.2中,讀者可以看出:

    l           MIDP 建立在 CLDC 功能的基礎(chǔ)之上。

    l           J2ME 規(guī)范允許設(shè)備制造商提供與自己設(shè)備相對(duì)應(yīng)的 API 供程序調(diào)用,一般來(lái)說(shuō),設(shè)備廠商都會(huì)提供一些自己的API 供開(kāi)發(fā)人員使用,這些功能都是有針對(duì)性的,因此在不同的設(shè)備之間可能無(wú)法移植。一般來(lái)說(shuō),這部分API能夠提供額外的功能或者在運(yùn)行性能上有所提高。

    此外,在圖1.2中可以看出CLDC 之上有兩類API

    l           MIDP API:這些API 正是MIDP 規(guī)范所要定義的API

    l           OEM Specific APIMIDP規(guī)范所涉及的無(wú)線通訊設(shè)備多種多樣,因此它不可能涉及所有設(shè)備的需求。因此這一類的API是由 OEM 廠商提供的,以便訪問(wèn)特定設(shè)備的特定功能。但基于這些API 的應(yīng)用可能不在其他的MIDP設(shè)備上運(yùn)行。關(guān)于這一部分,各個(gè)手機(jī)廠商都提供了自己的開(kāi)發(fā)包,讀者可以到手機(jī)廠商網(wǎng)站下載。

    這里需要澄清一個(gè)概念,無(wú)線通信設(shè)備并不等同于移動(dòng)信息設(shè)備。盡管就目前的實(shí)際情況來(lái)講,MIDP 規(guī)范主要是在無(wú)線通信設(shè)備中得到了廣泛的應(yīng)用。

    Java編寫(xiě)程序的最大好處莫過(guò)于一次編寫(xiě),隨處運(yùn)行。但是由于J2ME/CLDC/MIDP架構(gòu)的限制,同一個(gè)Java程序只能在相同的MIDP支持下運(yùn)行。要完整地定義所有的移動(dòng)設(shè)備是非常困難的,但是隨著MIDP的標(biāo)準(zhǔn)化和各個(gè)設(shè)備廠家對(duì)MIDP的支持,在標(biāo)準(zhǔn)的MIDP下開(kāi)發(fā)的Java應(yīng)用程序能夠在支持標(biāo)準(zhǔn)MIDP的設(shè)備上運(yùn)行。目前市面上大多數(shù)的智能手機(jī)都能夠支持MIDP v1.0,而且已經(jīng)開(kāi)始出現(xiàn)支持MIDP v2.0 的手機(jī),例如Nokia S90系列, SonyEricsson P900系列。

    有一點(diǎn)必須要提醒讀者注意,CLDCMIDPJ2ME 中兩個(gè)不同的規(guī)范,在 CLDC v1.0 MIDP 1.0 規(guī)范下,這兩個(gè)部分是沒(méi)有交叉的,但是當(dāng)MIDP 2.0 發(fā)布時(shí),除了在 MIDP 所提供的 API 中進(jìn)行了改動(dòng),還在 CLDC 所提供的 API 中增加了部分功能。例如 javax.microedition.io是由CLDC 規(guī)范所定義的,但在 MIDP 2.0 發(fā)布時(shí) javax.microedition.io 包中增加了對(duì)套接字,串口等的支持。讀者在學(xué)習(xí)時(shí)需要注意這一點(diǎn),當(dāng)查看某個(gè) API 時(shí),可以從幫助文檔中發(fā)現(xiàn)此 API 是屬于哪個(gè)規(guī)范定義的,避免引起理解上的混亂。

    1.1.6    1.1.6  J2MEJ2SE J2EE 之間的比較

    J2SE 為桌面開(kāi)發(fā)和低端商務(wù)應(yīng)用提供了可行的解決方案,J2EE為了各種企業(yè)應(yīng)用的開(kāi)發(fā)提供了解決方案,而J2ME則希望讓自己成為小型設(shè)備和嵌入式設(shè)備的開(kāi)發(fā)人員的最佳選擇。

    1.3 描述了Java體系結(jié)構(gòu)中 J2EEJ2SE J2ME 對(duì)于設(shè)備的應(yīng)用范圍。


    1.1.6.1.1 1.3  J2EEJ2SEJ2ME 的應(yīng)用范圍

    l           J2SE:是為桌面 PC而設(shè)計(jì)的,主要運(yùn)行在 Unix Linux Microsoft Windows等操作系統(tǒng)上。

    l           J2EE:是一個(gè)適合分布式的、多用戶、企業(yè)級(jí)應(yīng)用系統(tǒng)運(yùn)轉(zhuǎn)的平臺(tái)。它以J2SE為基礎(chǔ),增加了處理服務(wù)器端計(jì)算的功能。

    l           J2ME:和J2SE不同,它并不是一個(gè)單一的規(guī)范。準(zhǔn)確地說(shuō),J2ME是為了支持像小型嵌入式設(shè)備或移動(dòng)設(shè)備而制定的一系列的技術(shù)和規(guī)范的總稱。在提供類似的類庫(kù)的同時(shí)也對(duì) J2SE 中的類庫(kù)進(jìn)行了裁剪

    posted on 2005-09-16 22:52 sharky的點(diǎn)滴積累 閱讀(446) 評(píng)論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 午夜精品免费在线观看| 国产免费一区二区三区在线观看| 成人免费观看一区二区| 少妇中文字幕乱码亚洲影视| 免费h视频在线观看| 久久久影院亚洲精品| 免费av一区二区三区| 久久精品亚洲精品国产色婷| 91免费国产自产地址入| ass亚洲**毛茸茸pics| 热久久精品免费视频| 免费一级全黄少妇性色生活片 | 午夜视频在线免费观看| 亚洲AV无码国产在丝袜线观看| 日本免费人成网ww555在线| 久久精品国产亚洲AV无码偷窥| 青青视频观看免费99| 亚洲一区AV无码少妇电影| 国产在线19禁免费观看国产 | 亚洲AV成人片无码网站| 国产伦一区二区三区免费| 一级a性色生活片久久无少妇一级婬片免费放 | 免费网站观看WWW在线观看| 久久亚洲精品成人av无码网站| 18禁成人网站免费观看| 亚洲综合av一区二区三区| 国产一精品一aⅴ一免费| 国产综合免费精品久久久| 亚洲第一成年人网站| 国产18禁黄网站免费观看| 成人免费777777被爆出| 337p欧洲亚洲大胆艺术| 曰皮全部过程视频免费国产30分钟| 免费国产va视频永久在线观看| 亚洲国产美女精品久久久久∴| 日韩免费一区二区三区在线| 国产成人精品亚洲一区| 亚洲精品线在线观看| 国产免费观看黄AV片| 亚洲午夜免费视频| 青青在线久青草免费观看|