前言
J2ME 術語繁多 (Personal Basic Profile、Personal Profile、CLDC、CDC…),開發者常困惑於它們的關係與移植可行性。本文揭開平台神秘面紗,以架構圖解析核心邏輯。
一、歷史脈絡
- 2000 年 CLDC 發布,兩個月後 MIDP 推出,奠定互動應用開發基礎。
- ~10 個月後 CDC 與 Foundation Profile 發布,缺乏 UI API 關注度較低。
- 2003 年 Personal Basic Profile、Personal Profile 發布,取代 PersonalJava。
二、核心架構:Configuration + Profile
Configuration:提供支援最廣裝置的最小平台 (核心類別 + JVM)。
Profile:針對特定裝置提供開發包集合 (UI、儲存、聯網等),建構於 Configuration 之上。
三、CLDC vs CDC 硬體分級標準
| 指標 | CLDC | CDC |
| 記憶體 | ≤ 512 KB | ≥ 2 MB |
| 電源 | 電池、有限 | 固定/充足 |
| 網路 | 間歇、無線 | 持續、通常無線 |
| UI | 簡易或無 | 需完整 JVM 功能 |
| 處理器 | 16/32 位元 | 32/64 位元 |
| 典型裝置 | 手機、PDA、雙工呼叫器 | 機頂盒、車載導航、家電 |
四、J2ME 整體架構圖

- 核心:Configuration 定義 JVM 與核心類別,對接 Host OS。
- Profile 提供裝置 IO/UI 能力,Configuration + Profile = 完整執行環境 (如 CLDC/MIDP)。
- Profile 之上可再疊加可選包 (如 MMAPI、JSR 172 等)。
五、CDC 架構與 Profile 階層

- CDC 支援完整 Java 2 語言與 JVM 規範,為 CLDC 超集,**CLDC 程式可無修改移植至 CDC 裝置**。
- Foundation Profile:擴充 CDC,提供除 UI 外幾乎所有 J2SE 核心類別,作為其他 Profile 基礎。
- Personal Basic Profile:提供 AWT 子集 UI、Xlet 應用模型 (Java TV)。
- Personal Profile:Personal Basic Profile 超集,支援 Applet、豐富 AWT 組件、
java.awt.datatransfer,向後相容 PersonalJava 1.1/1.2。
- RMI Profile:提供 RMI 支援,實現網路裝置與異構系統互操作。
六、移植建議
- CLDC/MIDP 應用 → CDC/Foundation Profile:**不可直接移植** (缺 UI API),需重寫 UI 層。
- CLDC/MIDP → CDC/Personal Profile:**可移植** (支援 AWT/Applet),但需調整 UI 代碼適配 AWT。
- CDC 應用 → CLDC:**不可行** (API 超集、資源需求不符)。