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

J2ME概念解析

編輯:J2ME

J2ME,即Java 2 Micro Edition,是SUN公司推出的在移動設備上運行的微型版Java平台,常見的移動設備有手機,PDA,電子詞典,以及各式各樣的信息終端如機頂盒等等。

由於移動終端的類型成千上萬,而且計算能力差異非常大,不可能像桌面系統那樣僅僅兩三個版本的JVM即可滿足Windows,Linux和Unix系統,因此,J2ME不是一個簡單的微型版的JVM。為了滿足千差萬別的移動設備的需求,SUN定義了一系列的針對不同類型設備的規范,因此,J2ME平台便是由許多的規范組成的集合。

最重要的移動終端當然是手機了,因此,我們主要討論手機相關的J2ME規范。

Configuration

SUN把不同的設備按照計算能力分為CLDC(Connected Limited Device Configuration)和CDC(Connected Device Configuration)兩大類,這兩個Configuration是針對設備軟硬件環境嚴格定義的,比如CLDC1.0定義了內存大小為64-512k,任何設備如果支持CLDC1.0,就必須嚴格滿足定義,不能有可選的或者含糊的功能。

CLDC1.0是針對計算能力非常有限的設備定義的,只支持整數運算,不支持浮點運算,早期的Java手機大部分都支持CLDC1.0,如Nokia 3650,SIEmens 6688i。

CLDC1.1則增加了浮點運算,因此,在支持CLDC1.1的設備上,可以使用float和double類型的變量。現在的Java手機很多都能支持CLDC1.1,如Nokia 9500,SIEmens S65。

CDC則是針對計算能力比較強的設備定義的,如PPC等,CDC平台的JVM基本上和桌面的JVM很接近了,只是可以使用的Package大大少於J2SE的包。支持CDC的非常高端的Java手機也會很快上市。

Profile

和Configuration相比,Profile更多是針對軟件接口的定義,Profile有必須實現的,也有可選的功能,因此,Profile更靈活。

最重要的Profile當然是MIDP(Micro Information Device Profile),MIDP定義了能在Java手機上運行的Java程序的規范,包括應用程序生命周期,各種UI界面組件,支持Record存儲和Http連接等等,符合MIDP規范的Java小程序被稱為MIDlet,可以直接通過無線網絡下載到手機並運行。

早期的MIDP1.0規范使我們能在手機上運行有UI界面的Java程序,但是MIDP1.0對游戲的支持不夠,必須自己實現許多代碼,因此,MIDP2.0規范大大加強了對游戲開發的支持,使開發者能編寫更少的代碼來創建游戲。

MIDP規范的圖形界面基本上都是獨立於J2SE的AWT和Swing組件,因為目前手機的計算能力還比較有限,但是,隨著手機的CPU越來越快,使得AWT和Swing移植到手機上也將成為可能,因此,基於CDC規范的最新的PBP 1.0(Personal Basic Profile)和PP 1.0(Personal Profile)提供了部分AWT和Swing的支持,目前,部分高端PDA已經可以運行PBP和PP的Java程序了。可以預見,將來大部分的AWT和Swing組件都能移植到手機上。

前面已經說過,和Configuration相比,Profile有許多可選包,比較實用的Profile還有在JSR135定義的MMAPI(Mobile Media API),實現多媒體播放功能;在JSR184定義的M3G API(Mobile 3D Graphics API),實現3D功能;在JSR120定義的WMA(Wireless Messageing API),實現短消息收發。如果你的手機支持某一Profile,如M3G,那麼便可以在MIDlet中使用M3G的3D API實現3D游戲。

如果你准備在手機上開發J2ME應用,選擇手機時就需要注意廠商支持的CLDC規范,支持MIDP1.0還是2.0,是否支持MMAPI,M3G,WMA等可選包。

Profile雖然定義了Java API接口,但是底層如何實現是由各廠商自己決定的,如M3G定義了3D接口,但是底層實現既可以使用硬件加速,也可以由C程序模擬,或者部分由硬件實現,部分由軟件實現。

比J2ME更精簡的Java平台被SUN稱為JavaCard,運行在信用卡等芯片中,實現電子支付等功能,目前SUN還沒有把JavaCard並入J2ME平台。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved