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

J2ME 核心概念全解析:內存分區、CLDC、MIDP 與 Profile 體系

     編輯:J2ME

前言:搞懂這幾個概念,J2ME 學習不再迷茫

初學者常混淆「配置」、「概要文件」、「虛擬機」、「內存區」。本文用通俗語言、對比表格,徹底講清 J2ME 平台的基石概念。

一、 內存三大分區:Programme Memory / Heap / Persistent Storage

分區用途大小典型值管理方式開發關注點
Programme Memory存放 MIDlet Suite 的 JAR 文件(類、資源、清單)64 KB ~ 2 MB (視設備)安裝時寫入,不可運行時擴展壓縮 JAR:混淆、移除無用資源、資源外置(OTA 下載)
Heap (運行時堆)對象實例、數組、局部變量引用50 KB ~ 500 KBGC 自動管理,極易 OOM對象復用、避免大數組、及時置 null、System.gc() 輔助
Persistent Storage (RMS)RecordStore 持久化數據(設置、高分、緩存)100 KB ~ 數 MB應用管理,RecordStore API 操作序列化開銷、記錄碎片整理、敏感數據加密

口訣:JAR 進 Programme Memory,對象住 Heap,數據存 RMS。

二、 配置:CLDC vs CDC

維度CLDC (Connected Limited Device Configuration)CDC (Connected Device Configuration)
目標設備手機、PDA、嵌入式控制器(內存 < 2MB、間歇網絡、電池供電)機頂盒、車載系統、高端 PDA(內存 > 2MB、持久網絡、外部供電)
虛擬機KVM (Kilobyte VM),精簡、解釋執行、無 JITCVM (Compact VM) / 完整 JVM,支持 JIT、完整線程模型
核心庫java.lang、java.io、java.util、javax.microedition.io (子集)幾乎完整 J2SE 1.3/1.4 庫(除 AWT/Swing)
浮點數CLDC 1.0 無 float/double;CLDC 1.1 支持完整支持
版本1.0 / 1.1 (JSR 139)1.0 / 1.1 (JSR 218)

三、 概要文件:Profile 定義「能做什麼」

Configuration 定義「底座」,Profile 定義「能力」。

Profile基於配置核心 API典型應用
MIDP (Mobile Information Device Profile)CLDCMIDlet 生命週期、LCDUI (高/低級 UI)、RMS、網絡 (GCF)、推送註冊手機遊戲、工具、商業應用
MIDP 2.0 (JSR 118)CLDC 1.1+ 安全域、HTTPS、WMA (SMS/MMS)、多媒體 (MMAPI)、遊戲 API、SVG (JSR 226)豐富媒體、安全交易
Personal Basis ProfileCDCAWT 軟量級、RMI、JDBC 子集機頂盒、工業終端
Personal ProfileCDC幾乎完整 AWT、Applet 支持高端嵌入式
RMI ProfileCDC完整 RMI-IIOP分布式嵌入式

四、 平台組合公式

J2ME Platform = Configuration (CLDC|CDC) + Profile(s) (MIDP|PBP|PP|...)
例子:
- 典型功能機:CLDC 1.1 + MIDP 2.0
- 早期黑白屏手機:CLDC 1.0 + MIDP 1.0
- 智能機頂盒:CDC 1.1 + Personal Basis Profile 1.1

五、 開發決策樹

  1. 目標設備支持哪個 CLDC? → 決定能否用 float、泛型擦除後的性能、庫可用性。
  2. 是否需要 MIDP 2.0 安全域/HTTPS/推送? → 決定最低 MIDP 版本。
  3. JAR 大小限制多少? → 選擇混淆策略、資源外置方案。
  4. Heap 上限多少? → 設計對象池、圖片加載策略(分塊/流式)。

六、 總結

J2ME 世界的「配置 + 概要文件」雙軌制,本質是對異構硬體能力的標準化切割。搞清 內存三分區、CLDC/CDC 差異、Profile 能力邊界,才能在選型、優化、移植時做正確決策。

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