+-----------------+ 應用層:MIDlet | MIDlet | +-----------------+ Profile 層:MIDP (UI、RMS、網路、多媒體) | MIDP | +-----------------+ Configuration 層:CLDC (核心類庫、KVM、GCF) | CLDC 核心 API | | KVM | +-----------------+ 裝置層:專用硬體與作業系統 | 專用硬體 | +-----------------+
| 特性 | CLDC (Connected Limited Device Configuration) | CDC (Connected Device Configuration) |
|---|---|---|
| 目標裝置 | 手機、PDA、呼叫器(電池供電、記憶體 128-512KB) | 機頂盒、車載系統、網路電視(接市電、記憶體 >512KB、32/64位處理器) |
| 虛擬機 | KVM (K Virtual Machine) | CVM (Compact/Connected/Consumer VM) |
| 核心類庫 | java.lang、java.util、java.io 子集 + javax.microedition.io (GCF) | 含 CLDC 全集 + 反射、JNI、浮點、最終化、弱引用、完整 I/O、完整錯誤處理 |
| 不支援特性 | 浮點、finalize、弱引用、JNI、反射、線程組、守護線程、使用者自定義 ClassLoader、大部分 Error 子類 | 幾乎完整 J2SE 1.3 子集 |
java.lang:保留 Object、String、Thread、System、Runtime、基本型別包裝類、Math、異常體系(Error 僅保留 OutOfMemoryError 等極少數)。java.util:從 47 類精簡至 10 類(Vector、Stack、Hashtable、Enumeration、Calendar、Date、TimeZone、Random)。java.io:保留 Stream/Reader/Writer 基礎類、DataInput/Output、PrintStream,移除檔案系統相關類。javax.microedition.io:通用連接架構 (GCF),統一入口 Connector.open() 支援 HTTP、Socket、Datagram、Comm、File 等協議。源碼 → javac → .class → preverify → 預驗證後 .class → 下載裝置 → KVM 內驗證器 (線性掃描 StackMap) → 解譯執行
預驗證將堆疊映射資訊嵌入 class 檔,大幅降低裝置端驗證運算量,適應資源受限環境。
MIDP (Mobile Information Device Profile) 建構於 CLDC 之上,提供 UI (javax.microedition.lcdui)、持久化 (javax.microedition.rms)、應用生命週期 (javax.microedition.midlet) 等高階 API,構成完整手機應用開發平台。