首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

J2ME 入門必讀:配置、簡表與 KVM 架構深度解析

     編輯:J2ME

為什麼需要 J2ME?

1999 年 Sun 推出 Java 2 Micro Edition (J2ME),目標是 16/32-bit 處理器、16 MHz、512 KB 以下記憶體、間歇性無線網路、簡易圖形介面** 的消費性電子裝置 (手機、PDA、機頂盒、POS 終端…)。標準版 (J2SE) 足足 32 MB JVM 根本塞不進去,因此 J2ME 採用「配置 + 簡表」雙層架構,將 Java 運行環境模組化、可裁剪。

核心概念:Configuration (配置) vs Profile (簡表)

層級名稱目標裝置最低規格核心類別庫虛擬機
ConfigurationCLDC (Connected Limited Device Configuration)手機、PDA、寶貝監視器…160 KB 記憶體、16-bit CPU、間歇網路java.lang.*、java.io.*、java.util.* (子集)
javax.microedition.io.*
KVM (Kilobyte VM, ~128 KB)
CDC (Connected Device Configuration)機頂盒、車載資訊系統、智慧家電…512 KB+ 記憶體、32/64-bit CPU、持久網路近乎完整 J2SE 核心庫完整 JVM (功能強健版)

關鍵差異:CLDC 針對極度受限裝置,移除 float/double (CLDC 1.0)、finalization、JNI、反射、使用者定義類別載入器;CDC 則保留完整 Java SE 功能集。

Profile (簡表):垂直領域的完整運行環境

  • 建立在 Configuration 之上,提供 使用者介面、輸入法、持久化機制、網路協定** 等垂直領域 API。
  • 最知名:MIDP (Mobile Information Device Profile) —— 手機/PDA 應用標準,定義 javax.microedition.lcdui、javax.microedition.rms、javax.microedition.midlet 等。
  • 其他:PDAP (PDA Profile)、RMI Profile、Game API (JSR-134)、Bluetooth API (JSR-82)…

「一個 Configuration + 至少一個 Profile」= 完整 J2ME 執行環境。應用程式只針對 Profile 開發,無需額外支援類別。

J2ME 架構圖解:橫向三層、縱向兩條線

+---------------------------+
|        Profile(s)         |  ← 垂直領域 API (MIDP, PDAP, Game, BT...)
+---------------------------+
|      Configuration        |  ← 橫向裝置群組核心 API (CLDC 或 CDC)
|   (Core Libraries + VM)   |
+---------------------------+
|     Host OS / Hardware    |
+---------------------------+

Sun 參考實作將 KVM 與 CLDC 綁定發布,但規範允許廠商替換 VM (如實時 JVM、硬體加速 VM),只要通過相容性測試 (TCK)。

為什麼 J2ME 不定義統一 UI?

Sun 承認:消費性裝置形態極度多樣 (鍵盤、觸控、語音、手寫、單鍵滾動…),強行統一 UI 註定失敗。因此 UI 定義在 Profile 層** (MIDP 定義高階/低階 UI),CLDC/CDC 完全不涉及 UI。

KVM 與標準 JVM 差異速查

特性標準 JVM (J2SE)KVM (CLDC)
記憶體佔用~32 MB~128 KB
Float/Double支援CLDC 1.0 無,1.1 有
類別載入器可自訂僅系統載入器
Finalization有無
JNI有無
弱引用/軟引用有無

開發環境建置:從零到 Hello MIDlet

  1. 安裝 JDK 1.4+ (J2SE 仍需編譯類別檔)。
  2. 下載 Sun Java Wireless Toolkit (WTK) 2.5.2 (含 CLDC 1.1 + MIDP 2.0 模擬器)。
  3. 或安裝 Nokia S40/S60 SDK、Sony Ericsson SDK** 取得廠商擴充 API 與真機相容模擬器。
  4. IDE 選擇:Eclipse + EclipseME、NetBeans Mobility Pack、IntelliJ IDEA (舊版)**。
  5. 建立 MIDlet 專案 → 實作 javax.microedition.midlet.MIDlet 三大生命週期方法 → 執行模擬器除錯。

學習路徑建議

  1. 掌握 CLDC 1.1 核心類別庫 (重點:java.io、java.util 精簡版、javax.microedition.io)。
  2. 精通 MIDP 2.0 UI:高階 (Form/List/Alert/TextBox/Command) 與低階 (Canvas/Graphics/GameCanvas/LayerManager/Sprite)。
  3. 實作 RMS 持久化、HTTP/HTTPS 通訊、多執行緒與同步**。
  4. 進階:JSR-75 (PIM/FileConnection)、JSR-172 (Web Services)、JSR-184 (3D)、JSR-234 (多媒體)**。
  5. 真機測試、效能調優、Jar 壓縮 (ProGuard)、簽名發佈 (OTA/資料線/藍牙)。

結語:宏觀視野與微觀技藝並重

理解「Configuration 定義底線、Profile 定義上限、KVM 提供引擎」的分層哲學,才能在碎片化的行動裝置世界中,設計出既符合規格又能發揮平台特色的應用程式。這篇入門教程不著墨於語法細節,而是幫你建立「見山是山、見水是水」的架構心智——這才是踏入 J2ME 世界大門的真正鑰匙。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved