面對 J2ME 滿天飛的術語(KVM、CLDC、CDC、MIDP、Personal Java…),初學者易迷失。本文拋開細節,從宏觀架構切入,助你建立清晰全貌:「見山是山,見水是水」。
所有 Java 版本開發皆須先安裝 J2SE(提供 javac、java),再加裝對應平台的核心類別庫與擴充包。編譯器不檢查目標平台支援度,需靠 檢查器 或 預先驗證器 確保類別檔相容。預先驗證器在類別檔加入特殊標記,減輕目標裝置 JVM 驗證負擔,加快啟動速度。CLDC/MIDP 參考實作均內建預先驗證器。
J2ME 原則:單一開發系統無法滿足所有裝置。將嵌入式裝置分兩大類:
| 類別 | Configuration | 典型裝置 | 記憶體 | 虛擬機 |
|---|---|---|---|---|
| 運算/電力有限 | CLDC | PDA、手機 | 160-512 KB | KVM |
| 運算/電力較充足 | CDC | 機頂盒、冰箱、車載導航 | ≥ 2 MB | CVM |
Configuration 定義最小核心類別與 JVM;Profile 建構於 Configuration 之上,定義特定裝置的 UI、資料存儲等領域 API。應用程式針對 Profile 開發,可移植至支援該 Profile 的所有裝置。
Java 天生為嵌入式設計,配合 Linux 等嵌入式 OS 可構建 Java-Linux 雙贏平台。面對 PalmOS、WinCE、EPOC、Embedded Linux 等多平台亂象,J2ME 提供「Write Once, Run Anywhere」承諾,大幅降低跨平台開發成本。
行動通訊時代來臨,PDA 廠商眾多、平台碎片化嚴重。J2ME 讓開發者以單一代碼庫覆蓋多平台,實現投資保護與市場最大化。