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

使用 Java 撰寫手機應用程式(續):除錯、中文支援與開發工具

     編輯:J2ME

MIDlet 除錯技巧

  • System.out.println():模擬器主控台直接輸出,真機需廠商提供 KDWP (KVM Debug Wire Protocol) 支援、下載工具與除錯介面(串列埠/UDP)。
  • Motorola 文件指出機上除錯需:裝置支援 KDWP、廠商提供下載工具、除錯工具支援傳輸介面。

中文編碼問題深度分析

現象

編譯指令模擬器 UI 顯示主控台輸出
javac ... (預設 Big5)正常亂碼
javac -encoding ISO8859_1 ...亂碼正常

根本原因

  1. Java 類別檔內部字串採 UTF-8 儲存。
  2. 預設 javac 以系統編碼 (Big5) 讀取源碼 → Unicode → UTF-8 存入 class。
  3. KVM 執行時:讀取 UTF-8 → Unicode → 缺少 Unicode→系統編碼步驟 → 直接以 Unicode 碼值當作系統編碼輸出 → 亂碼。
  4. 加上 -encoding ISO8859_1 強迫編譯器將每個位元組視為獨立字元(不做 Big5→Unicode 轉換),產生的 UTF-8 碼值恰好等於原 Big5 碼值,KVM 輸出時剛好還原為 Big5,主控台正常;但 UI 繪圖路徑不同,導致 UI 亂碼。

建議

真機上大概率需加 -encoding ISO8859_1 才能正確輸出中文;UI 部分需測試具體裝置行為。感謝唐愷隆同學共同探討。

支援工具

  • IDE:Motorola 文件提及 CodeWarrior;Borland JBuilder OpenTools API 即將支援。
  • SDK 內建工具:
    • J2ME Emulator:PC 模擬手機執行
    • Bytecode Verifier:驗證 class 檔安全性
    • Configuration Editor:建立/修改裝置描述檔

附錄:SDK 內建範例

Bounce、PaddleBall、Scribble、FontDemo、GraphicsDemo、RecordStoreDemo、UDP Tutorial、AlertTest、ChoiceGroupTest、DateFieldTest、FormTest、GaugeTest、KeyEventsTest、TextBoxTest、TextFieldTest、TickerTest。

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