J2ME Polish 是專為 J2ME 應用開發設計的綜合工具集,核心目標是 「一份原始碼,部署多裝置、多語言」。它包含:
<!-- build.xml 片段 -->
<target name="build" depends="preprocess,compile,obfuscate,package" />
<!-- 針對不同裝置群組建構 -->
<devices>
<device id="nokia_s40" groups="Series40" />
<device id="sony_ericsson_k700" groups="MIDP2, MMAPI" />
</devices>
devices.xml 定義目標裝置群組resources/ # 通用資源
resources/Nokia/ # Nokia 專用
resources/Siemens/S65/ # 特定型號
resources/BitPerPixel.16+/ # 依螢幕色深分派
<resource if="polish.hasMIDI" file="music.mid"/>resources/locales/<lang>/messages.txt 儲存預處理指令直接在原始碼中以註解形式撰寫,編譯前展開:
// #if polish.midp2 || polish.api.mmapi
// Player player = Manager.createPlayer(...); // MMAPI 可用
// #endif
// #if polish.ScreenWidth >= 240
// // 大螢幕專用 UI 佈局
// #endif
polish.ScreenWidth, polish.hasCamera)/* polish.css */
.title {
font: bold medium;
color: #FFFFFF;
background: #003366;
padding: 4;
border: 1 solid #CCCCCC;
}
#mainForm {
background-image: url(background.png);
layout: vertical;
}
.class)、ID (#id)、元素類型 (Form, StringItem)StyleSheet.setStyleSheet("/theme2.css")LayerManager, Sprite, TiledLayer| 類別 | 用途 |
|---|---|
de.enough.polish.util.BitmapFont | 位圖字體渲染,支援多語言、特效文字 |
de.enough.polish.util.ArrayList | 比 Vector 更高效的動態陣列 |
de.enough.polish.util.TextUtil | 字串斷行、截斷、度量工具 |
LoggingFramework | 分級記錄 (debug/warn/error/自訂),建構時可完全移除 |