前言:超越批處理的專業構建方案
Antenna 是基於 Apache Ant 的 J2ME 專用構建框架,提供豐富的預定義任務,完美解決批處理腳本跨平台差、維護難、功能弱的痛點。支持預處理、混淆、預驗證、打包、簽名、模擬器運行等全生命周期操作。
核心任務清單
| 任務名 | 功能 | 對應傳統步驟 |
| wtkbuild | 編譯 Java 源碼 | javac + bootclasspath |
| wtkpreverify | 字節碼預驗證 | preverify.exe |
| wtkobfuscate | 代碼混淆 (ProGuard/RetroGuard) | java -jar proguard.jar |
| wtkpackage | 打包 JAR/JAD,可選預驗證 | jar + manifest + jad |
| wtkrun | 啟動模擬器運行 | emulator.exe -Xdescriptor |
| wtkpreprocess | C 風格預處理(條件編譯) | //#ifdef //#endif |
| wtkjad | 生成/更新 JAD 文件 | 手動編寫/腳本生成 |
| wtkmakeprc | JAD/JAR 轉 PalmOS PRC 格式 | 專用轉換工具 |
實戰:構建 WTK 示例項目 audiodemo
build.xml 完整配置
兩種運行方式
方式一:Eclipse + Ant 插件(推薦)
- 安裝 Eclipse(自帶 Ant 支持)
- 新建 Java 項目,將
build.xml 放入項目根目錄
- 右鍵
build.xml → Run As → Ant Build
- 控制台輸出完整構建日誌,雙擊錯誤行定位源碼
方式二:命令行純 Ant
- 下載 Apache Ant,解壓至
C:\ant
- 環境變量
PATH 添加 C:\ant\bin
- 創建項目目錄,放入
build.xml
- CMD 進入目錄,輸入
ant 回車
核心優勢:預處理驅動多版本構建
Antenna 最大價值在於 wtkpreprocess 任務,支持 C 風格條件編譯指令:
//#ifdef NOKIA_S40
//#= 針對 S40 優化的代碼
Image bg = Image.createImage("/bg_s40.png");
//#else
//#= 通用代碼
Image bg = Image.createImage("/bg_default.png");
//#endif
構建時通過屬性傳遞:
一套代碼庫,通過不同屬性組合生成數十個機型適配版本,徹底解決 J2ME 碎片化難題。
進階配置技巧
- 混淆器選擇:
<wtkobfuscate obfuscator="proguard"/> 或 retroguard
- 庫依賴管理:
<wtkbuild> 的 classpathref 引用預定義 <path>
- 簽名集成:配合
signjar 任務實現發布版自動簽名
- 持續集成:Jenkins/Hudson 直接調用
ant clean build
遷移建議
若現有項目使用批處理構建,建議漸進式遷移:
- 先用 Antenna 替換「編譯+打包+預驗證」核心流程
- 逐步引入預處理管理機型差異
- 最終實現「一鍵構建全機型發布包」
Antenna 讓 J2ME 構建從「手工作坊」邁入「工業化流水線」時代。
- 上一篇文章: J2ME 實用圖形工具類:文本自動換行、半透明渲染與灰度圖生成
- 下一篇文章: 克服 J2ME 開發挑戰:硬件資源受限環境下的工程化應對策略
Copyright ©
程式碼之家 All Rights Reserved