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

J2ME 走向成熟:配置與簡檔架構深度解析

     編輯:J2ME

J2ME 不是單一規範,而是家族

1999 年 Sun 發布 Java 2 平台,將 Java 劃分為三版本:

  • J2SE:桌面/低端企業應用
  • J2EE:企業級伺服器端開發
  • J2ME:消費性產品與嵌入式設備

J2ME 無單一規格書,而是相關規範族群,針對資源受限設備(能源、記憶體、儲存、UI 差異巨大)定義 Java 子集。

兩層架構:配置 + 簡檔

兩大配置詳解

CLDC - Connected Limited Device Configuration

  • 目標:≤ 512 KB 記憶體、電池供電、間歇網絡、簡單/無 UI
  • 適用:手機、尋呼機、簡易 PDA
  • 核心包(僅 4 個,共 76 類/介面):
    • java.io (18) - I/O 基礎
    • java.lang (38) - 語言核心(無反射、無 finalize、無浮點)
    • java.util (10) - 集合/工具極精簡版
    • javax.microedition (10) - MIDlet 管理、IO 基礎
  • 缺失:UI、持久化、網絡協議 → 由 Profile 補足

CDC - Connected Device Configuration

  • 目標:≥ 2 MB 記憶體、持續電源、穩定網絡
  • 適用:機頂盒、車載導航、娛樂系統
  • 核心:完整 JVM 規範(支援 JNI 1.1、JVMDI、JVMPI)+ 完整 Java 2 類庫子集(含 java.net、java.security、java.math、java.text、java.util.zip 等,共 14 包、400+ 類)
  • 同樣無 UI → 需 Profile

兩大核心簡檔

MIDP - Mobile Information Device Profile (建構於 CLDC)

  • 補足 CLDC 缺失:Timer、RMS、HTTP、高級 UI (lcdui)
  • 新增 4 包(共 47 類/介面):
    • javax.microedition.rms (10) - 記錄管理
    • javax.microedition.midlet (2) - MIDlet 生命週期
    • javax.microedition.io (1) - HTTP 協議
    • javax.microedition.lcdui (24) - UI 工具包
  • MIDlet 框架:擴展 MIDlet 類,由 AMS (Application Management Software) 控制 startApp/pauseApp/destroyApp 生命週期,類似 Applet。

Foundation Profile (建構於 CDC)

  • 大幅擴展 CDC API(含 java.security.acl、java.security.interfaces、java.security.spec 等),總計 400+ 類
  • 無 UI,需疊加 Personal Profile (JSR 62) 或其他 UI 簡檔
  • 目標:取代 PersonalJava 1.1/1.2,向後相容

舊世代技術現狀

層級定義核心內容
Configuration 配置JVM + 核心類庫最小集,滿足設備族群資源下限java.lang、java.util、java.io 子集 + javax.microedition 基礎
Profile 簡檔特定垂直領域(手機、PDA、機頂盒)的 API 增補UI、持久化、網絡、多媒體等領域專用 API
技術現狀遷移路徑
PersonalJava逐步轉型為 CDC Personal Profile,向後相容 1.1/1.2重編譯針對 Foundation + Personal Profile
KJava (Palm)實驗性、API 不穩定,Sun 提醒勿用於生產Palm 定義 CLDC PDA Profile 取代,遷移工作量未知

架構關係圖解

J2EE          J2SE          J2ME
                      ├── CDC ──── Foundation Profile ──── Personal Profile (開發中)
                      │
                      └── CLDC ──── MIDP (手機/PDA)
                                  ├── 其他 Profile (PDA, RIM, 等)

開發者決策指南

  1. **目標裝置記憶體 < 512 KB** → CLDC + MIDP(手機遊戲、工具類)
  2. **目標裝置記憶體 ≥ 2 MB、需完整 Java 語言特性** → CDC + Foundation + UI Profile
  3. **現有 PersonalJava/KJava 代碼庫** → 評估遷移成本,PersonalJava 路徑較平滑,KJava 需重寫。
  4. **跨裝置部署** → 核心邏輯寫在 CLDC 共用層,UI/平台特定代碼隔離在 Profile 層。

總結

J2ME 以配置定義底線、簡檔定義上限的雙層架構,優雅解決了「一個 Java 跑遍所有嵌入式設備」的不可能三角。雖早期規格碎片化嚴重,但隨著 MIDP 2.0 普及、Personal Profile 釋出、PDA/RTV/汽車等垂直簡檔陸續定型,J2ME 正走出「不成熟期」,成為嵌入式 Java 開發的工業標準。對開發者而言,**深耕一個 Configuration+Profile 組合(如 CLDC 1.1 + MIDP 2.0)即可覆蓋 80%+ 目標市場**,投資回報率極高。

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