主流文獻常將 J2ME 架構劃分為三層:JVM、配置、Profile。若加入可選包與底層 OS,則形成四層模型(自下而上):
前三層(JVM + 配置 + Profile)構成 J2ME 完整運行環境。
| 虛擬機 | 全稱 | 目標裝置 | 特點 |
|---|---|---|---|
| KVM | Kilobyte Virtual Machine | 手機、PDA、傳呼機等極度受限裝置 | 極致精簡、功能較弱、千字節級足跡 |
| CVM | Compact Virtual Machine | 可視電話、POS、車載導航等較大嵌入式裝置 | 含動態編譯器、效能較強、需 2MB+ 儲存 + 512KB+ 運行記憶體 |
KVM 是 CLDC 參考實現;CVM 是 CDC 基礎。兩者皆為標準 JVM 的縮減版,支援「一次編譯、到處運行」的核心關鍵。
專為 CLDC 裝置設計,定義行動裝置專屬 API:
startApp()、pauseApp()、destroyApp() 三狀態import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMIDlet extends MIDlet {
private Display display;
public void startApp() {
display = Display.getDisplay(this);
Form form = new Form("Hello");
form.append("Hello, J2ME World!");
display.setCurrent(form);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
}
J2ME 架構以「JVM 適配硬體 → 配置定義最小公倍數 → Profile 滿足垂直需求」的分層設計,實現了在極度異構的嵌入式裝置上的一致性開發體驗。理解三層邊界與依賴關係,是跨裝置移植與問題診斷的關鍵。