J2ME 標準架構
J2ME 建立在 Profile、Configuration、虛擬機、宿主作業系統之上,構成完整運行環境。提供兩種配置:CLDC (Connected Limited Device Configuration) 與 CDC (Connected Device Configuration),依裝置記憶體足跡面向不同類別裝置。
配置層角色
配置指定最小功能集與 JVM 應支援的 Java 類別庫。概念上運行於 VM 之上,但與特定 VM 緊密相連 (如 CLDC/KVM、CDC/CVM)。配置不綁定特定 VM,可與支援所需庫的其他 VM 合作 (如 CLDC HotSpot Implementation VM)。
CLDC — 針對資源受限裝置
- 目標:< 512KB 記憶體裝置 (16/32-bit 微處理器、160-512KB 記憶體、電池供電、間歇性無線連線)。
- VM:KVM (高度優化 JVM),典型需 128KB 儲存 KVM+庫。
- 網路:有限間歇無線連線,應用可在任何高端 Java VM 運行 (需 CLDC 庫支援)。
- 關注領域:I/O、網路、安全、國際化、核心 Java 庫。
- UI/事件處理/生命週期由 Profile 處理 (如 MIDP 定義 CLDC 裝置 UI 規範)。
- 類別多源自 J2SE,但有針對小記憶體新類別。語言規範例外:無浮點支援、無物件終結化、有限錯誤處理。
- CLDC HotSpot Implementation VM:替代 KVM,同記憶體下效能提升 10 倍,32-bit、符合 CLDC v1.0 規範。
CDC — 完整 Java 平台
- 目標:> 2MB 記憶體裝置,有限間歇無線連線。
- VM:CVM (完整功能 JVM),支援 Java 2 v1.3 所有安全機制、JNI、JVMDI、RMI、弱引用等,功能等同桌面 JVM。
- 類別庫:J2SE 最小子集 + Foundation Profile (用戶裝置所需庫/API)。開發者需更新代碼配合 API 更新。
- 相容性:CDC 擴展 CLDC,向上相容;支援 PersonalJava 應用完整相容。
總結
J2ME 架構使不同裝置類別能擁有「專屬版」Java。隨裝置製造商採用增加,新 Profile 將不斷湧現。配置以結構化方式提供公共最小化平台,賦能 Java 專屬版本誕生。