以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- Linux技術討論區 (http://www.hufushizhe.com/bbs/list.asp?boardid=7) ---- j2me手機開發MID格式詳解 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=7&id=1329) |
-- 作者:wangxinxin -- 發布時間:2010-11-15 9:09:31 -- j2me手機開發MID格式詳解 在一個J2ME項目中干了半年的CM (Configuration Management)/BM (Build Management),學習到了很多普通開發人員較少機會接觸, 但是對項目本身又十分重要的知識,寫出來與大家分享。 前言 1. 關于JDK/WTK的選擇 WTK也是同樣的道理,高版本的通常具有較好的兼容性,這里給一個提示, 如果你需要將你的程序再多種品牌的手機上運行,你可以同時安裝特定手機品牌放出的J2ME WTK,通過在這類特定的WTK上進行測試,可以較早于真機發現問題。在J2ME的開發過程中,JSR包的選擇十分重要,當使用某些 特定JSR時,一定要調研清楚,所需要支持的手機中是否都支持該JSR包。 2. 編譯腳本的編寫 用Ant來構建應用通常是編寫一個build.xml文件,將該文件傳給Ant, Ant根據build.xml文件中的指示進行編譯和構建,在使用Eclipse+EclipseMe 開發J2ME應用時,可以從Eclipse導出build.xml,不過還是推薦大家自己編寫build.xml文件。編寫build.xml時,也建議進行良好的設計, 越是復雜的構建過程,對build.xml要求也越高。 3. Antenna Antenna是Ant的擴展包,它是專用來構建、編譯、打包、部署J2ME 應用的輔助工具。 Antenna中非常實用的工具就是WtkPreprocess,它給Java開發添加 了類似C/C++中的宏定義和代碼預處理的功能。Antenna支持的宏定義 包括: #ifdef 使用Antenna的過程中,會有一些缺陷。例如,在開發過程中,我們 通過定義宏來代表某個功能,對于不同的手機,當我們需要支持該功能時,在編譯的過程中,打開這個宏即可,反之則關閉這個宏。如果該功能只與代碼有關系,情況就十分簡單,Antenna的WtkPreprocess 可以完成我們需要的功能。但是如果該功能同時與資源有關系,當 我們選擇不支持該功能時,我們不但想在編譯的過程中,通過預處理,去掉相關的代碼,也希望該功能相關的資源也不被放入JAR包中, 而WtkPreprocess除了處理源代碼,其他都無能為力。因此在構建腳本的編寫過程中,需要特別注意這類問題。 4. Proguard 在J2ME開發中,通常都會使用到該工具,并且該工具是開源的, 很容易獲取。 5. Preverify 6. Size Control 6.1 kjar/kzip 此處,我們推薦使用一個稱為kjar的工具,可以從 http://supremej2me.bambalam.se/guides/optimization-tools/kjar/ 下載到,他是通過改寫壓縮算法,使制作的JAR包能比普通JAR包減小10% 左右的大小。同時,由于kjar只能運行于Windows平臺,并且通常被病毒 防火墻誤認為病毒,用起來并不方便,因此你可以從 http://advsys.net/ken/utils.htm 下載kzip,包括Windows和Linux版本,能實現同樣的功能。 6.2 BamFS 6.3 mbooster mbooster是一個很強的工具,但同時,也是個收費的工具,開發者 可以向該公司申請trial的license,網址是 http://www.innaworks.com/mBooster.html , mbooster可以減小JAR包的大小,同時也能提高程序的運行速度, 它可以優化class文件,PNG文件,普通情況小可以減小30-40%左右的 大小。 7. 自動構建工具 構建管理者所需要做的事情就是,將自己制作的構建環境放入 CruiseControl之中,對其進行適當的配置,接下來的事情就十分簡單了,每次需要構建時,只需要登陸到CruiseControl提供的 Web界面,鼠標點擊某鏈接來trigger構建,后臺會自動完成構建、發布,并發郵件通知相關人員,一旦編譯出錯,也會以郵件的 方式通知大家。 8. 需要遵守的一些原則 2. 要求開發人員盡量使用標準的構建環境進行構建。J2ME的開發,通常都會在Eclipse/NetBeans里面完成,但一定要求開發人員 在提交代碼到版本控制系統中之前,至少需要使用標準構建環境構建一次JAR包,并驗證。這樣可以幫助盡早發現問題,因為IDE 與自訂制的構建環境總是存在差別的。 3. 建議將所有用到的第三方庫/代碼/程序都放入Build Environment中, 而整個Build Environment是應該放入版本控制系統中的。對于 JDK/WTK/Ant等基礎設施工具,可以要求開發人員自己安裝,并設置好環境變量。可以編寫適當的腳本,對環境以及版本進行判斷。 每次構建之前,先判斷,若不滿足,則不予構建。 9. 結束語 |