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

J2ME 基礎詳解:架構圖解、CLDC/CDC 對比、五大 Profile、KVM 與規範生態全景

     編輯:J2ME

系統性梳理 J2ME 技術體系:從架構分層、兩大 Configuration 細節、五大標準 Profile、kJava 歷史地位、到 PersonalJava/KVM/JES 等周邊規範,建立完整知識骨架。

一、J2ME 整體架構三層兩欄

  • 虛擬機層:KVM (CLDC) / CVM (CDC)
  • Configuration 層:核心類庫 + JVM 規範 (CLDC / CDC)
  • Profile 層:垂直領域 API (MIDP, PDA, Foundation, Personal, RMI)
  • Optional Packages:獨立模組化功能 (藍牙、多媒體、JDBC、JAXP…)

二、CLDC (Connected Limited Device Configuration) 深度剖析

目標裝置特徵

  • 記憶體 ≤ 512KB (典型 128~256KB)
  • 電池供電、間歇網路 (≤9600bps)
  • 多樣化或無 UI
  • 典型:手機、PDA、呼叫器、POS 終端

四大核心包 (J2SE 精簡子集)

包主要保留/刪減
java.lang保留:Object, String, Math(無浮點), Thread, Exception, System
刪除:Float, Double, ClassLoader, 反射, 最終化
java.util保留:Vector, Hashtable, Random, Date, Calendar, Enumeration
刪除:Collections 框架大部分、Locale、正則
java.io保留:Input/OutputStream, DataInput/OutputStream, ByteArrayStream
刪除:File 類、Reader/Writer (字元流)、序列化
javax.microedition.ioGCF 連線框架:Connector, StreamConnection, DatagramConnection, CommConnection, HttpConnection

CLDC 刪減設計哲學

  1. 記憶體極限:RMI/反射/浮點類別庫太大
  2. 最小共同分母:滿足所有目標裝置共同能力
  3. 硬體限制:無 FPU → 刪 Float/Double;無檔案系統 → 刪 File 類;錯誤恢復困難 → 簡化例外體系

GCF 統一連線範例


Connector.open("https://host");           // HTTP
Connector.open("socket://host:port");    // TCP
Connector.open("datagram://host:port");  // UDP
Connector.open("comm:0;baud=9600");      // 序列埠
Connector.open("file:/data");            // 檔案 (視裝置支援)

三、CDC (Connected Device Configuration) 全貌

  • 記憶體 > 512KB (通常 MB 級)
  • 固定電源、持續高速網路
  • 典型:機頂盒、車載資訊系統、網路家電、工業控制器
  • 基於 J2SE 1.3 子集,**完整包含 CLDC 所有功能** + float/double/RMI/反射/JNI/檔案 I/O/最終化/弱引用
  • 虛擬機:CVM (Compact VM),需支援 JNI 1.1、JVMDI、JVMPI

四、五大標準 Profile 完整對比

Profile基礎 Config目標裝置核心功能
MIDPCLDC手機、雙向傳呼器高/低階 UI、RMS、HTTP、Timer、GameCanvas
PDA ProfileCLDCPalm/Handspring PDAAWT 子集 UI、資料庫、取代 kJava
Foundation ProfileCDC無 GUI 網路裝置完整網路、無 UI、其他 CDC Profile 基石
Personal Basis ProfileCDC簡易 GUI 裝置Foundation + AWT 輕量 UI
Personal ProfileCDC豐富 GUI 裝置PBP + 完整 AWT、Applet 支援、取代 PersonalJava
RMI ProfileCDC分散式嵌入式系統Foundation + Java RMI

五、kJava:歷史過渡產物

  • 早期 Palm KVM Demo 專用類庫 (com.sun.kjava)
  • 提供:Graphics UI、Palm 資料庫、簡易集合、三角函數
  • 應用稱為 Spotlet,單一顯示、penDown() 事件驅動
  • 已被 PDA Profile 取代,但早期大量教學/程式碼仍用 kJava

六、周邊規範生態

規範定位現狀
PersonalJavaWeb 連線消費裝置、Applet 執行併入 CDC → Personal Profile
EmbeddedJava固定功能嵌入式、無下載需求不在 J2ME 傘下、無擴展機制
KVMCLDC 參考實作 VM模組化、C 撰寫、非搶先式、標記清掃 GC
JavaCodeCompact預連結/預載入類別進 VM 映像減少啟動時間與執行時記憶體
JAM (Java Application Manager)CLDC 裝置 OTA 安裝/更新/回滾管理器處理資源受限環境下的應用生命週期
JES (Java Embedded Server)嵌入式伺服器運行時 (服務/服務空間架構)核心服務:HTTP、RMI、SNMP、排程、主控台…
JavaPhone / JavaTVPersonalJava 兩大擴展分別針對智慧型手機/機頂盒
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved