毛片网站在线看_天堂俺去俺来也www久久婷婷_日韩av免费网站_18性欧美xxxⅹ性满足_一区二区三区韩国免费中文网站 _性xx色xx综合久久久xx_999亚洲国产精


曙海教育集團論壇Linux專區Linux技術討論區 → j2me手機開發MID格式詳解


  共有9261人關注過本帖樹形打印

主題:j2me手機開發MID格式詳解

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
j2me手機開發MID格式詳解  發帖心情 Post By:2010-11-15 9:09:31

在一個J2ME項目中干了半年的CM (Configuration Management)/BM (Build Management),學習到了很多普通開發人員較少機會接觸, 但是對項目本身又十分重要的知識,寫出來與大家分享。

前言
      手機應用軟件的開發越來越流行,其中又以J2ME開發為甚。放眼當前 各品牌手機,大多數都支持J2ME,而Java中的“一次編寫,到處運行” 的概念也極大的吸引了開發者。但是,手機開發平臺與PC比仍然有很大 的差距,J2ME的開放性也造成了各個手機J2ME程序的不兼容性,各大廠商都極力的推自己的特性開發包,而不注重與其他手機兼容。因此, 我們在開發J2ME程序的時候,不但要注意程序本身的開發,更要注意為不同品牌、型號的手機進行特定構建,特別是開發人員人數在10-20的 開發團隊中。

1. 關于JDK/WTK的選擇
      JDK屬于基礎設施,選擇的版本越新越好。通常,高版本的JDK可以設置 按照低版本的語法進行編譯,可以指定生成低版本的class文件格式。

      WTK也是同樣的道理,高版本的通常具有較好的兼容性,這里給一個提示, 如果你需要將你的程序再多種品牌的手機上運行,你可以同時安裝特定手機品牌放出的J2ME WTK,通過在這類特定的WTK上進行測試,可以較早于真機發現問題。在J2ME的開發過程中,JSR包的選擇十分重要,當使用某些 特定JSR時,一定要調研清楚,所需要支持的手機中是否都支持該JSR包。

2. 編譯腳本的編寫
      如同開發C/C++程序一樣編譯的時候需要寫Makefile,開發J2ME程序的時候也需要有類似的腳本來完成整個編譯和構建的過程,這里面有一些 選擇,簡單的構建過程,Windows平臺上可以考慮編寫bat腳本,基本能夠滿足需求。對于較為負責的構建過程,推薦選擇Ant。Ant是一個 用于簡單或復雜Java工程的自動化構建、部署工具,它對于那些具有分布式開發團隊或者相信通過頻繁的構建來進行不間斷集成的公司尤 其有用。在J2ME開發上,同樣可用。同時Ant有豐富的插件,幫助完成 Ant本身無法完成的功能,對于特定的需求,構建管理者可以自己編寫 插件,集成到Ant中。

      用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
#ifndef
#elifdef
#elifndef
#if
#elif
#else
#endif
#condition
#debug
#mdebug
#enddebug
#define
#undefine
#expand
可以從 http://antenna.sourceforge.net/wtkpreprocess.php 獲得 詳細的說明。

      使用Antenna的過程中,會有一些缺陷。例如,在開發過程中,我們 通過定義宏來代表某個功能,對于不同的手機,當我們需要支持該功能時,在編譯的過程中,打開這個宏即可,反之則關閉這個宏。如果該功能只與代碼有關系,情況就十分簡單,Antenna的WtkPreprocess 可以完成我們需要的功能。但是如果該功能同時與資源有關系,當 我們選擇不支持該功能時,我們不但想在編譯的過程中,通過預處理,去掉相關的代碼,也希望該功能相關的資源也不被放入JAR包中, 而WtkPreprocess除了處理源代碼,其他都無能為力。因此在構建腳本的編寫過程中,需要特別注意這類問題。

4. Proguard
      ProGuard是一款免費的Java類文件壓縮器、優化器和混淆器。它能發現并刪除無用類、字段(field)、方法和屬性值(attribute)。 它也能優化字節碼并刪除無用的指令。最后,它使用簡單無意義的名字來重命名你的類名、字段名和方法名。經過以上操作的jar文件 會變得更小,并很難進行逆向工程。

在J2ME開發中,通常都會使用到該工具,并且該工具是開源的, 很容易獲取。

5. Preverify
      Preverify是WTK帶的一個驗證class文件的工具,通過了Preverify的 class文件,在手機上運行前僅需要做一些二次驗證的工作。

6. Size Control
      編寫J2ME程序的時候,JAR包的大小是個大問題,手機上的存儲空間 和程序運行空間都十分珍貴,因此我們需要盡最大的能力減小 JAR包 的大小。

6.1 kjar/kzip
      在制作JAR包時,有很多方法。JDK本身提供了jar命令,可以制作JAR包, JAR包其實可以理解為標準的ZIP包。

      此處,我們推薦使用一個稱為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
      BamFS是另一個減少JAR包大小的工具,可以從 http://supremej2me.bambalam.se/guides/optimization-tools/bamfs/ 下載。該工具可以將所有資源文件,包括圖片、文本等,打成一個大 的二進制文件,并且提供了一個java類,方便開發人員從這個大的二 進制文件中讀取所有資源。通過減少JAR包中文件的數目(或者文件夾 的層次),同樣也可以減少JAR包的大小。

6.3 mbooster

  mbooster是一個很強的工具,但同時,也是個收費的工具,開發者 可以向該公司申請trial的license,網址是 http://www.innaworks.com/mBooster.html , mbooster可以減小JAR包的大小,同時也能提高程序的運行速度, 它可以優化class文件,PNG文件,普通情況小可以減小30-40%左右的 大小。

7. 自動構建工具
      選擇一個自動構建的工具,會極大的減少構建管理者的工作量, 在這里推薦 CruiseControl ,該工具被廣泛的用于Java項目和 極限開發之中。CruiseControl內建支持各類的版本管理工具, 支持Ant、Maven等多種構建工具,支持定時構建,支持多種發布 方式。

      構建管理者所需要做的事情就是,將自己制作的構建環境放入 CruiseControl之中,對其進行適當的配置,接下來的事情就十分簡單了,每次需要構建時,只需要登陸到CruiseControl提供的 Web界面,鼠標點擊某鏈接來trigger構建,后臺會自動完成構建、發布,并發郵件通知相關人員,一旦編譯出錯,也會以郵件的 方式通知大家。

8. 需要遵守的一些原則
      1. 整個Build Environment需要有良好的結構,可以參考一些開源 項目的結構。為目標構建人員(例如開發人員、測試人員等) 提供簡單的接口,即通過簡單的設置,就能構建出想要得東西。 對于提供的接口,一定要有詳細的文檔描述。

      2. 要求開發人員盡量使用標準的構建環境進行構建。J2ME的開發,通常都會在Eclipse/NetBeans里面完成,但一定要求開發人員 在提交代碼到版本控制系統中之前,至少需要使用標準構建環境構建一次JAR包,并驗證。這樣可以幫助盡早發現問題,因為IDE 與自訂制的構建環境總是存在差別的。

      3. 建議將所有用到的第三方庫/代碼/程序都放入Build Environment中, 而整個Build Environment是應該放入版本控制系統中的。對于 JDK/WTK/Ant等基礎設施工具,可以要求開發人員自己安裝,并設置好環境變量。可以編寫適當的腳本,對環境以及版本進行判斷。 每次構建之前,先判斷,若不滿足,則不予構建。

      9. 結束語
J2ME開發看似簡單,里面還是有很多東西需要注意的,特別是面對 眾多品牌手機的情況下,希望我的經驗也能對你有所幫助。


支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

j2me手機開發MID格式詳解








簽名
毛片网站在线看_天堂俺去俺来也www久久婷婷_日韩av免费网站_18性欧美xxxⅹ性满足_一区二区三区韩国免费中文网站 _性xx色xx综合久久久xx_999亚洲国产精
国产综合久久久久影院| 午夜激情综合网| 欧美久久久影院| 在线不卡中文字幕| 国产精品毛片无遮挡高清| 亚洲综合色网站| 国产+成+人+亚洲欧洲自线| 欧美亚洲国产一区二区三区va| 欧美日韩在线观看一区二区 | 亚洲精品写真福利| 国产农村妇女毛片精品久久麻豆| 国产一区二区h| 亚洲男人的天堂网| 精品成人在线观看| 91免费观看国产| 精品写真视频在线观看| 中文字幕在线观看不卡视频| 色网站国产精品| 国产原创一区二区| 午夜亚洲福利老司机| 欧美大胆一级视频| 欧美午夜精品一区| 99re在线视频这里只有精品| 青娱乐精品在线视频| 自拍偷拍国产亚洲| 国产日韩欧美精品在线| 欧美女孩性生活视频| 成人成人成人在线视频| 久久国产精品区| 天天综合色天天综合色h| 中文字幕免费不卡| 精品福利av导航| 日韩美女一区二区三区| 欧美无人高清视频在线观看| a亚洲天堂av| 成人免费毛片a| 97精品国产露脸对白| 色久优优欧美色久优优| 国产高清成人在线| 成人一区二区三区中文字幕| 国内不卡的二区三区中文字幕| 性做久久久久久| 婷婷综合在线观看| 精品一区免费av| 国产高清精品网站| 99久久99久久综合| 欧美在线制服丝袜| 精品国产伦理网| 中文无字幕一区二区三区| 亚洲成人av电影| 欧美日本一区二区| 337p日本欧洲亚洲大胆精品| 欧美日韩精品欧美日韩精品| 成人黄动漫网站免费app| 国产一区二区三区高清播放| 午夜精品免费在线| 在线国产电影不卡| 欧美一区午夜视频在线观看 | 国产亚洲精品福利| 一区二区三区电影在线播| 一区二区三区四区亚洲| 日韩综合小视频| 欧美性做爰猛烈叫床潮| 久久久久久久久久久电影| 99精品视频中文字幕| 777亚洲妇女| 国产露脸91国语对白| 国产日韩欧美综合一区| 亚洲国产一区二区视频| 91在线国产福利| 色女孩综合影院| 国产99久久久国产精品免费看| 午夜影视日本亚洲欧洲精品| 久久蜜桃av一区精品变态类天堂 | 成人免费视频网站在线观看| 国产精品午夜免费| 欧美日韩免费电影| 色狠狠一区二区| 欧美一区二区女人| 91精品午夜视频| 亚洲三级免费观看| 成人高清伦理免费影院在线观看| 欧美日韩情趣电影| 亚洲成av人片在线| 欧美日韩国产乱码电影| 欧美精彩视频一区二区三区| 日韩极品在线观看| 日韩亚洲欧美一区| 久久99国内精品| 欧美大片在线观看一区二区| 日韩国产欧美在线视频| 日韩免费一区二区| 午夜天堂影视香蕉久久| 69精品人人人人| 激情综合一区二区三区| xvideos.蜜桃一区二区| 国模娜娜一区二区三区| 91在线国产观看| 夜夜亚洲天天久久| 欧美mv日韩mv国产网站| 国产精品亚洲专一区二区三区 | 在线成人免费视频| 青娱乐精品视频| 91精品国产高清一区二区三区| 国产美女在线精品| 国产精品美女久久久久久2018| 91高清视频在线| 亚洲蜜臀av乱码久久精品| 欧美亚一区二区| 激情六月婷婷综合| 国产精品系列在线| 欧美一级片在线看| 丁香婷婷综合五月| 美脚の诱脚舐め脚责91 | 亚洲精品自拍动漫在线| xvideos.蜜桃一区二区| 色88888久久久久久影院野外| 免费在线观看成人| 亚洲高清不卡在线| 亚洲欧洲日产国码二区| 2014亚洲片线观看视频免费| 欧美日本一区二区| 91久久国产综合久久| 国产资源在线一区| 视频在线观看91| 五月天网站亚洲| 日韩一区中文字幕| 精品久久久久一区二区国产| 欧美在线播放高清精品| 懂色一区二区三区免费观看| 日韩电影一二三区| 日本美女视频一区二区| 日韩在线一区二区三区| 亚洲男人都懂的| 亚洲精品免费在线观看| 亚洲激情欧美激情| 亚洲国产中文字幕| 麻豆免费精品视频| 另类小说色综合网站| 精品一二三四区| 日韩电影在线免费| 日韩中文字幕av电影| 日本麻豆一区二区三区视频| 国产美女精品一区二区三区| 精品影视av免费| 97久久精品人人爽人人爽蜜臀| 色悠久久久久综合欧美99| 91在线视频官网| 懂色av噜噜一区二区三区av| av网站一区二区三区| 欧美日本在线看| 中文字幕五月欧美| 亚洲成人777| 成人激情视频网站| 日韩免费看的电影| 国产日韩精品一区二区浪潮av| 日韩制服丝袜av| 久久66热偷产精品| 欧美亚洲丝袜传媒另类| 欧美国产激情一区二区三区蜜月 | 久久99精品久久久久| 成人免费视频视频在线观看免费| 欧美午夜视频网站| 亚洲欧洲99久久| 国产在线精品免费av| 337p亚洲精品色噜噜| 亚洲人成网站精品片在线观看 | 91麻豆自制传媒国产之光| 国产欧美日韩在线观看| 奇米色777欧美一区二区| 欧美色窝79yyyycom| 一区二区三区中文字幕| 91免费视频观看| 1024亚洲合集| 国产在线不卡视频| 日韩欧美国产综合一区| 精品亚洲porn| 国产午夜精品福利| 91视频在线看| 亚洲国产wwwccc36天堂| 91豆麻精品91久久久久久| 亚洲伦在线观看| 久久97超碰国产精品超碰| 精品欧美一区二区久久| 国产精品亚洲综合一区在线观看| 欧美一区二区视频网站| 裸体健美xxxx欧美裸体表演| 91精品国产91久久久久久一区二区| 午夜精品久久久久久不卡8050| 久久综合九色综合97婷婷| 日本不卡一区二区| 国产喂奶挤奶一区二区三区| av电影天堂一区二区在线| 亚洲6080在线| 久久久精品人体av艺术| 欧美日韩国产免费一区二区| 韩国精品一区二区| 亚洲午夜电影在线观看| 欧美精品一二三| 成人av影院在线|