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

J2ME Polish 完整配置指南:裝置、API、廠商與 CSS 客製化實戰

     編輯:J2ME

J2ME Polish 配置體系

Polish 透過 XML 配置管理裝置特性、API 支援、廠商差異、CSS 樣式等。核心配置檔:

  • apis.xml:JCP 規範支援的 API 庫描述(如 MMAPI)
  • custom-css-attributes.xml:自訂 GUI 元件 CSS 樣式屬性
  • custom-devices.xml:補充官方未收錄的裝置定義
  • devices.xml:所有已知裝置定義(可修改現有或新增)
  • groups.xml:裝置群組(資源分類依據)
  • vendors.xml:自訂廠商 J2ME 規範

實戰:新增自訂裝置 "3Geye/k700"

步驟 1:定義廠商

編輯 vendors.xml,複製既有廠商(如 moto)修改:

<vendor>
  <name>3Geye</name>
  <capability name="JavaConfiguration" value="CLDC/1.0"/>
  <features>hasCommandKeyEvents</features>
  <capability name="keys.CommandKeys" value="21, 22, 23"/>
  <capability name="key.LeftSoftKey" value="21"/>
  <capability name="key.RightSoftKey" value="22"/>
  <capability name="key.MiddleSoftKey" value="23"/>
  <capability name="key.ChangeInputModeKey" value="48"/>
  <capability name="key.ChangeNumericalAlphaInputModeKey" value="35"/>
  <capability name="TextField.charactersKeyStar" value=" "/>
</vendor>

步驟 2:定義裝置

編輯 devices.xml:

<device supportsPolishGui="true">
  <identifier>3Geye/k700</identifier>
  <features>isVirtual</features>
  <groups>Series60</groups>
  <capability name="OS" value="Symbian"/>
  <capability name="JavaPackage" value="mmapi, wmapi, pdaapi"/>
  <capability name="JavaPlatform" value="MIDP/2.0"/>
  <capability name="JavaConfiguration" value="CLDC/1.0"/>
  <capability name="VideoFormat" value="3gpp"/>
  <capability name="SoundFormat" value="midi, amr"/>
  <capability name="Bugs" value="dateFieldAcceptsNoNullDate"/>
</device>

pdaapi 對應 JSR 75 (PDA Optional Packages) 支援。

步驟 3:建構腳本指定裝置

<deviceRequirements>
  <requirement name="Identifier" value="3Geye/k700"/>
</deviceRequirements>

建構輸出驗證

[j2mepolish] preprocessing for device [3Geye/k700]
[j2mepolish] compiling for device [3Geye/k700]
[j2mepolish-Javac-3Geye/k700] Compiling 3 source files...
[j2mepolish] obfuscating for device [3Geye/k700]...
[j2mepolish] preverifying for device [3Geye/k700]...
[j2mepolish] creating JAR file [.../sysinfo.jar]
[j2mepolish] creating JAD file [.../sysinfo.jad]
BUILD SUCCESSFUL
Total time: 14 seconds

關鍵概念:預處理符號與能力值

每個 capability 會產生同名預處理符號,可在原始碼中用 //#if、//#= 條件編譯:

//#if polish.Vendor == Sagem
//#= int screenWidth = ${polish.ScreenWidth};
//#else
//#= int screenWidth = UNKNOWN_WIDTH;
//#endif

學習建議

  • Polish 文件雖豐富但 UI/ CSS 版本說明不清,新手易困惑
  • Build 腳本寫法較文件複雜,建議從官方範例專案修改入手
  • 中文資源稀缺,實作記錄與社群分享極重要
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved