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

J2ME 架構核心概念深度解析:Configuration、Profile、KVM 與 Java 嵌入式發展史

     編輯:J2ME

面對 CLDC、CDC、MIDP、KVM、PersonalJava 等術語的迷霧,本文從宏觀架構與歷史演進兩個維度,建立清晰的 J2ME 知識地圖。

一、Java 版本演進脈絡

  1. OAK (1990s):Sun 為嵌入式系統設計的語言
  2. Java 1.0/1.1:因網路爆發轉向 Applet/桌面應用
  3. EmbeddedJava / PersonalJava (Java 1.1 時代):回歸嵌入式
    - EmbeddedJava:無顯示、極度受限裝置
    - PersonalJava:有顯示、網路連線的消費性裝置 (PDA、機頂盒)
  4. Java 2 平台三分天下:
    J2SE 桌面/伺服器標準版
    J2EE 企業級分散式應用
    J2ME 微型嵌入式/行動裝置

二、J2ME 架構雙軸設計:Configuration × Profile

Configuration(縱向:硬體能力分層)

CLDCCDC
目標裝置手持、電池供電、間歇網路 (手機、PDA、呼叫器)固定、外接電源、持續網路 (機頂盒、車載、智能家電)
記憶體128KB ~ 512KB> 512KB (通常 MB 級)
處理器16/32-bit, ~16MHz32/64-bit
虛擬機KVM (Kilobyte VM, ~100KB)CVM (Compact VM, 完整 JVM 子集)
核心類庫java.lang/io/util 精簡子集 + javax.microedition.ioJ2SE 1.3 子集 + CLDC 全部 + float/double/RMI/反射/JNI
缺失特性float/double、finalize、弱引用、RMI、反射、AWT/Swing、類載入器、檔案系統幾乎無缺失 (完整 Java SE 子集)

Profile(橫向:垂直領域功能集)

Profile基礎 Configuration目標領域核心功能
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

三、關鍵技術元件

KVM (Kilobyte Virtual Machine)

  • C 語言撰寫、模組化設計(可裁剪 float/多維陣列/驗證器模組)
  • 非搶先式排程:執行固定位元組碼數後切換執行緒
  • 標記-清掃 GC,直接物件參考
  • 附屬工具:JavaCodeCompact (預連結/預載入類別進 VM)、JAM (Java Application Manager,OTA 安裝/更新/回滾)

預先驗證

J2SE 載入類別時執行 Bytecode Verifier(耗時)。CLDC/MIDP 要求開發階段在 PC 執行 preverify,在 class 檔標記驗證結果,裝置端驗證器大幅簡化,加快啟動。

Generic Connection Framework (GCF)

CLDC 統一連線介面:Connector.open("protocol://address")


// 統一 API 建立五種連線
Connector.open("https://host/file");      // HTTP
Connector.open("socket://host:port");    // TCP Socket
Connector.open("datagram://host:port");  // UDP Datagram
Connector.open("comm:0;baudrate=9600");  // 序列埠
Connector.open("file:/path");            // 檔案 (裝置支援時)

四、Java 嵌入式生態:JES 與 Linux 結合

  • Java Embedded Server (JES):建立於 PersonalJava 基礎,提供服務/服務空間架構(類 OSGi),核心服務含 HTTP、RMI、SNMP、排程、執行緒池、主控台
  • Java + Embedded Linux:雙贏組合,Linux 提供裝置驅動/檔案系統/程序管理,Java 提供應用層可移植性/安全性/網路堆疊

五、為什麼選擇 Java 做 PDA/手機開發?

「跨平台投資報酬率最高」。面對 PalmOS、WinCE、EPOC、Embedded Linux、@ViS 等五大以上平台,Java 單一代碼庫配合各廠商 JVM 實現「Write Once, Run Anywhere」。效能隨專用 CPU (ARM Jazelle 等) 與預先驗證技術大幅提升,已非瓶頸。

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