程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> J2ME技術

J2ME技術

編輯:J2ME
 J2ME(Java 2 Platform Micro Edtion)是什麼?它既不是一個軟件,又不是一個規范。這樣說可能會令人糊塗,甚至某些已經熟悉J2SE的開發人員都感到困惑。實際上,我們可以把J2ME看成是一個技術和規范的集合。與J2SE針對桌面應用開發不同,J2ME針對多種多樣的嵌入式設備,由於這類設備的多樣性,期望有一種能適合所有設備的方案並不現實,J2ME只是一個統稱,是所有與嵌入式設備相關技術的集合。  J2ME的組成  J2ME平台並沒有定義一種新語言,它僅僅是把已有的Java技術移植到手持設備和嵌入式設備上,它盡可能地維護了與J2SE的兼容性。事實上,J2ME並沒有定義一些新類去滿足資源受限設備的應用需求,而是去掉了J2SE(或者J2EE)中不必要的部分,從而適合於這類資源受限設備的需求。  如果要深入地了解J2ME,我們就必須弄清楚J2ME與EmbeddedJava應用環境和PersonalJava應用環境的關系。EmbeddedJava應用環境和PersonalJava應用環境與J2ME平台是完全分離的,它們都基於JDK 1.1,而J2ME平台的來源則完全不同。Java Card是J2ME的補充,但並不是它的一部分。  自Oak出現以後,Java技術經過了漫長的發展歷程:從Embedded Java到PersonalJava應用環境,再到MIDP 1.0。直到不久以前,“Java 2平台微型版(J2ME)”一詞還是“移動信息設備概要(MIDP)”的同義詞,因為MIDP 1.0是當時市場上惟一的J2ME Profile,也是惟一針對電子設備編程的J2ME API。而現在J2ME已經進化成為一種有組織的架構,其中包括一組針對高端PDA和嵌入式設備的Java API,以及一組針對諸如手機、低端PDA和智能卡等資源嚴重受限設備的Java API。J2ME平台規范(JSR 68)定義了所有關鍵元素,這些元素盡可能地提高了可重用性,包括概要、配置、可選包和構件。J2ME的組織結構是一種軟件棧結構,新的功能可以被不斷地增添上去。  J2ME中並沒有與廠商有關的API,它們並不是標准概要和配置的一部分,比如控制無線電傳輸器或其他給定設備的API,你可以把它們看成是對標准概要的擴展。  在這裡,Configuration是一個規范,它定義了基本的J2ME運行環境,包括虛擬機和一組源自J2SE的核心類子集。Profile是建立在某個Configuration之上的特定API集合,它是對Configuration的擴展,提供基本Configuration所缺少的功能,包括應用程序生命周期、用戶界面、網絡連接、存儲、安全等。為了在不改動Profile的前提下增加設備的功能,J2ME在Profile之外又提供了可選包,您可將它們看成Profile的擴展,每個可選包為某個或某些Profile增加特定的功能。  J2ME的這種結構很好地適應了嵌入式設備的巨大多樣性。從低到高,你可根據設備的情況采用不同的Configuration,在同一Configuration中你又可以根據設備的用途選用不同的Profile,你還可以在同一設備中采用多個Profile,如果你還嫌功能不夠,尚有可選包可用。  到現在,我們已經非常清楚地了解了J2ME的結構,讓我們來看看已經發布的Configuration和Profile有哪些?  已發布的Configuration  截止到目前,已發布了兩個Configuration:連接受限設備配置 ( Connected Limited Device Configuration,簡稱CLDC) 和連接設備配置(Connected Device Configuration,簡稱CDC)。這兩個Configuration的共性是它們都是針對有網絡連接的設備定義的,無論它是高速的固定連接,還是低速的無線連接;另一方面,兩者之間也存在很多差別,包括各自所采用的Java虛擬機,以及可提供的特性和API。  無論是CLDC還是CDC,其核心都是Java虛擬機。CLDC采用了KVM,它是一個真正的最小的而又基本上完整的Java虛擬機,小到可以裝入幾十KB的內存中。CDC則采用了CVM,它是一個具有完整的J2SE 1.3 VM支持能力的Java虛擬機,因此也更適合使用、更有效,但又比標准的J2SE VM小。作為一個全功能的Java虛擬機,CVM幾乎支持J2SE VM的所有先進特性,包括最底層的調錯處理和本地語言接口。  1.CLDC   CLDC(Connected Limited Device Configuration )是最小的J2ME配置,它直接源自Spotless System,針對非常小、資源有限、有網絡連接的設備,諸如低端手機、PDA、雙向尋呼機等。這些設備計算能力較低、內存少、電池壽命不長、網絡帶寬小。  CLDC對硬件的要求不高,可以運行在采用16位或32位處理器、最少擁有160KB ROM和32KB RAM,並能提供某種網絡連接的設備上。CLDC采用J2SE核心API的子集,還增加了特定的GCF (Generic Connection Framework)包DDJavax .microedition.io。  2.CDC   與CLDC相比,CDC是為資源更寬裕的設備定義的規范,諸如高端手機、高端PDA、機頂盒、信息家電、甚至汽車導航系統等。支持CDC的設備需要32位處理器、至少2MB內存以及某種網絡連接。CDC是CLDC的超集,它包括CLDC定義的所有類,甚至包括J2SE未包括的類,諸如GCF等。它是一個具有與J2SE 1.3 VM相同功能但規模更小的虛擬機。由於CDC包括了更多的J2SE 核心類,因此編程更加方便。  已發布的Profile  J2ME中第一個正式發布的Profile是MIDP,而且隨後比較長的時間內未有其他Profile發布,以至有人把MIDP等同於J2ME了,但實際上,MIDP只是J2ME中的一部分。目前已經發布的Profile包括基於CLDC的MIDP和PDAP(Personal Digital Assistant Profile);基於CDC的FP(Foundation Profile)、PBP(Personal Basis Profile)和PP(Personal Profile)。  1.基於CLDC的Profile   基於CLDC的Profile包括MIDP和PDAP,但已經正式發布的只有MIDP。MIDP (The Mobile Information Device Profile)是最早發布且最成熟的J2ME Profile。它主要是針對手機設備提出的,目前幾乎所有的主流廠商都支持MIDP,包括摩托羅拉、諾基亞、愛立信、西門子等主要手機生產商;支持MIDP的電信運營商包括SprintPCS、 Nextel和NTT DoCoMo。許多獨立軟件開發商也支持MIDP,表1描述了MIDP 2.0對設備的需求。  MIDP規范最早由摩托羅拉提出,被JSR 37定義。它定義了MIDP應用程序的生命周期類、網絡類、用戶界面包、存儲包,具體包括java.io、java.lang、java.lang、javax.microedition.io、javax.microedition.lcdui、javax.microedition.midlet和Javax.microedition.rms。  2.基於CDC的Profile  CDC針對更高端的手持或嵌入式設備,這些設備有更多的內存和更強的處理能力,但其配置和概要是相同的。CDC為設備提供了通用的、底層的界面;基於CDC的Profile則提供了適合特定設備的類。截止到目前,基於CDC的Profile有FP、PBP和PP。  (1)FP  FP(The Foundation Profile)規范不像其他的Profile那樣提供運行環境,而是為其他基於CDC的Profile 提供一個基礎,本規范編號為JSR 46。 它為基於CDC的Profile提供了更好的安全性、更多的工具包。該規范並沒有包含任何用戶界面包,因此該規范適合於某些無用戶界面但有網絡連接的專用嵌入設備。  (2)PBP  PBP(The Personal Basic Profile)規范針對有網絡連接並有基本圖形界面的設備。潛在的市場包括交互數字電視、信息電話亭等。這些設備需要一個基本的圖形界面,但並不需要完整的AWT支持。該規范與PP的主要區別是:PP要考慮移植PersonalJava ,因此必須支持以前PersonalJava中的所有特性。該規范對硬件的要求如下:最少2MB的ROM、1MB的 RAM(應用程序和本地化資源所需的內存不包括在內)、穩定的網絡連接、基本的圖形界面。PBP規范的編號為JSR 129,它定義了最小的AWT用戶界面包、JavaBeans支持相關包、應用程序生命周期類。PBP應用程序也叫Xlet。  (3)PP  PP(PersonalProfile)是PersonalJava環境的具體實現,由JSR 62定義。它是PBP的超集,提供了CDC、FP和PBP中描述的所有Java包。它還增加了其他Profile缺少的AWT類和小程序支持。PP主要針對高端設備,其內存應該不少於2MB。  已發布的可選包  截止到目前,正式發布的可選包有WMA(The Wireless Messaging API)、MMAPI(The Mobile Media API)和RMI API。  (1)WMA可選包

  它由JSR 120定義, 為某些具有收發無線信息的設備提供API。它定義了一組收發信息的API,信息既可以是文本信息也可以是二進制信息,最典型的就是SMS(短信服務)。它可用於CLDC和CDC。該API只有一個包Javax.wireless.messaging 。  (2)MMAPI可選包  MMAPI由JSR 135定義,它為某些具有高級音響和多媒體功能的設備提供了一個通用但靈活的多媒體處理API。該可選包以CLDC為最低需求,因此也可用於CDC。該API定義的包如表2所示。  (3)RMI可選包

  RMI由JSR 66定義, 它為某些需要RMI功能的編程提供了支持。該API是J2SE中相應API的改進版本。 包名為Java.rmi。  未來發展  在三個Java 2平台中,J2ME可能是變化最快的。隨著手持設備、嵌入式設備的增多,許多新的Profile、可選包也即將發布,讓我們來看一些即將發布的最令人興奮的Profile和可選包。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved