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
定義的
M
如果你準備在手機上開發
J2ME
應用,選擇手機時就需要注意廠商支持的
CLDC
規范,支持
MIDP1.0
還是
2.0
,是否支持
MMAPI
,
M
Profile
雖然定義了
Java API
接口,但是底層如何實現是由各廠商自己決定的,如
M
比 J2ME 更精簡的 Java 平臺被 SUN 稱為 JavaCard ,運行在信用卡等芯片中,實現電子支付等功能,目前 SUN 還沒有把 JavaCard 并入 J2ME 平臺。
?