久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團(tuán)論壇Linux專區(qū)Linux技術(shù)討論區(qū) → j2me手機(jī)開發(fā)MID格式詳解


  共有8165人關(guān)注過(guò)本帖樹形打印

主題:j2me手機(jī)開發(fā)MID格式詳解

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


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

在一個(gè)J2ME項(xiàng)目中干了半年的CM (Configuration Management)/BM (Build Management),學(xué)習(xí)到了很多普通開發(fā)人員較少機(jī)會(huì)接觸, 但是對(duì)項(xiàng)目本身又十分重要的知識(shí),寫出來(lái)與大家分享。

前言
      手機(jī)應(yīng)用軟件的開發(fā)越來(lái)越流行,其中又以J2ME開發(fā)為甚。放眼當(dāng)前 各品牌手機(jī),大多數(shù)都支持J2ME,而Java中的“一次編寫,到處運(yùn)行” 的概念也極大的吸引了開發(fā)者。但是,手機(jī)開發(fā)平臺(tái)與PC比仍然有很大 的差距,J2ME的開放性也造成了各個(gè)手機(jī)J2ME程序的不兼容性,各大廠商都極力的推自己的特性開發(fā)包,而不注重與其他手機(jī)兼容。因此, 我們?cè)陂_發(fā)J2ME程序的時(shí)候,不但要注意程序本身的開發(fā),更要注意為不同品牌、型號(hào)的手機(jī)進(jìn)行特定構(gòu)建,特別是開發(fā)人員人數(shù)在10-20的 開發(fā)團(tuán)隊(duì)中。

1. 關(guān)于JDK/WTK的選擇
      JDK屬于基礎(chǔ)設(shè)施,選擇的版本越新越好。通常,高版本的JDK可以設(shè)置 按照低版本的語(yǔ)法進(jìn)行編譯,可以指定生成低版本的class文件格式。

      WTK也是同樣的道理,高版本的通常具有較好的兼容性,這里給一個(gè)提示, 如果你需要將你的程序再多種品牌的手機(jī)上運(yùn)行,你可以同時(shí)安裝特定手機(jī)品牌放出的J2ME WTK,通過(guò)在這類特定的WTK上進(jìn)行測(cè)試,可以較早于真機(jī)發(fā)現(xiàn)問(wèn)題。在J2ME的開發(fā)過(guò)程中,JSR包的選擇十分重要,當(dāng)使用某些 特定JSR時(shí),一定要調(diào)研清楚,所需要支持的手機(jī)中是否都支持該JSR包。

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

      用Ant來(lái)構(gòu)建應(yīng)用通常是編寫一個(gè)build.xml文件,將該文件傳給Ant, Ant根據(jù)build.xml文件中的指示進(jìn)行編譯和構(gòu)建,在使用Eclipse+EclipseMe 開發(fā)J2ME應(yīng)用時(shí),可以從Eclipse導(dǎo)出build.xml,不過(guò)還是推薦大家自己編寫build.xml文件。編寫build.xml時(shí),也建議進(jìn)行良好的設(shè)計(jì), 越是復(fù)雜的構(gòu)建過(guò)程,對(duì)build.xml要求也越高。                                                                                                                                                                                      

3. Antenna

      Antenna是Ant的擴(kuò)展包,它是專用來(lái)構(gòu)建、編譯、打包、部署J2ME 應(yīng)用的輔助工具。

Antenna中非常實(shí)用的工具就是WtkPreprocess,它給Java開發(fā)添加 了類似C/C++中的宏定義和代碼預(yù)處理的功能。Antenna支持的宏定義 包括:

#ifdef
#ifndef
#elifdef
#elifndef
#if
#elif
#else
#endif
#condition
#debug
#mdebug
#enddebug
#define
#undefine
#expand
可以從 http://antenna.sourceforge.net/wtkpreprocess.php 獲得 詳細(xì)的說(shuō)明。

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

4. Proguard
      ProGuard是一款免費(fèi)的Java類文件壓縮器、優(yōu)化器和混淆器。它能發(fā)現(xiàn)并刪除無(wú)用類、字段(field)、方法和屬性值(attribute)。 它也能優(yōu)化字節(jié)碼并刪除無(wú)用的指令。最后,它使用簡(jiǎn)單無(wú)意義的名字來(lái)重命名你的類名、字段名和方法名。經(jīng)過(guò)以上操作的jar文件 會(huì)變得更小,并很難進(jìn)行逆向工程。

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

5. Preverify
      Preverify是WTK帶的一個(gè)驗(yàn)證class文件的工具,通過(guò)了Preverify的 class文件,在手機(jī)上運(yùn)行前僅需要做一些二次驗(yàn)證的工作。

6. Size Control
      編寫J2ME程序的時(shí)候,JAR包的大小是個(gè)大問(wèn)題,手機(jī)上的存儲(chǔ)空間 和程序運(yùn)行空間都十分珍貴,因此我們需要盡最大的能力減小 JAR包 的大小。

6.1 kjar/kzip
      在制作JAR包時(shí),有很多方法。JDK本身提供了jar命令,可以制作JAR包, JAR包其實(shí)可以理解為標(biāo)準(zhǔn)的ZIP包。

      此處,我們推薦使用一個(gè)稱為kjar的工具,可以從 http://supremej2me.bambalam.se/guides/optimization-tools/kjar/ 下載到,他是通過(guò)改寫壓縮算法,使制作的JAR包能比普通JAR包減小10% 左右的大小。同時(shí),由于kjar只能運(yùn)行于Windows平臺(tái),并且通常被病毒 防火墻誤認(rèn)為病毒,用起來(lái)并不方便,因此你可以從 http://advsys.net/ken/utils.htm 下載kzip,包括Windows和Linux版本,能實(shí)現(xiàn)同樣的功能。

6.2 BamFS
      BamFS是另一個(gè)減少JAR包大小的工具,可以從 http://supremej2me.bambalam.se/guides/optimization-tools/bamfs/ 下載。該工具可以將所有資源文件,包括圖片、文本等,打成一個(gè)大 的二進(jìn)制文件,并且提供了一個(gè)java類,方便開發(fā)人員從這個(gè)大的二 進(jìn)制文件中讀取所有資源。通過(guò)減少JAR包中文件的數(shù)目(或者文件夾 的層次),同樣也可以減少JAR包的大小。

6.3 mbooster

  mbooster是一個(gè)很強(qiáng)的工具,但同時(shí),也是個(gè)收費(fèi)的工具,開發(fā)者 可以向該公司申請(qǐng)trial的license,網(wǎng)址是 http://www.innaworks.com/mBooster.html , mbooster可以減小JAR包的大小,同時(shí)也能提高程序的運(yùn)行速度, 它可以優(yōu)化class文件,PNG文件,普通情況小可以減小30-40%左右的 大小。

7. 自動(dòng)構(gòu)建工具
      選擇一個(gè)自動(dòng)構(gòu)建的工具,會(huì)極大的減少構(gòu)建管理者的工作量, 在這里推薦 CruiseControl ,該工具被廣泛的用于Java項(xiàng)目和 極限開發(fā)之中。CruiseControl內(nèi)建支持各類的版本管理工具, 支持Ant、Maven等多種構(gòu)建工具,支持定時(shí)構(gòu)建,支持多種發(fā)布 方式。

      構(gòu)建管理者所需要做的事情就是,將自己制作的構(gòu)建環(huán)境放入 CruiseControl之中,對(duì)其進(jìn)行適當(dāng)?shù)呐渲茫酉聛?lái)的事情就十分簡(jiǎn)單了,每次需要構(gòu)建時(shí),只需要登陸到CruiseControl提供的 Web界面,鼠標(biāo)點(diǎn)擊某鏈接來(lái)trigger構(gòu)建,后臺(tái)會(huì)自動(dòng)完成構(gòu)建、發(fā)布,并發(fā)郵件通知相關(guān)人員,一旦編譯出錯(cuò),也會(huì)以郵件的 方式通知大家。

8. 需要遵守的一些原則
      1. 整個(gè)Build Environment需要有良好的結(jié)構(gòu),可以參考一些開源 項(xiàng)目的結(jié)構(gòu)。為目標(biāo)構(gòu)建人員(例如開發(fā)人員、測(cè)試人員等) 提供簡(jiǎn)單的接口,即通過(guò)簡(jiǎn)單的設(shè)置,就能構(gòu)建出想要得東西。 對(duì)于提供的接口,一定要有詳細(xì)的文檔描述。

      2. 要求開發(fā)人員盡量使用標(biāo)準(zhǔn)的構(gòu)建環(huán)境進(jìn)行構(gòu)建。J2ME的開發(fā),通常都會(huì)在Eclipse/NetBeans里面完成,但一定要求開發(fā)人員 在提交代碼到版本控制系統(tǒng)中之前,至少需要使用標(biāo)準(zhǔn)構(gòu)建環(huán)境構(gòu)建一次JAR包,并驗(yàn)證。這樣可以幫助盡早發(fā)現(xiàn)問(wèn)題,因?yàn)镮DE 與自訂制的構(gòu)建環(huán)境總是存在差別的。

      3. 建議將所有用到的第三方庫(kù)/代碼/程序都放入Build Environment中, 而整個(gè)Build Environment是應(yīng)該放入版本控制系統(tǒng)中的。對(duì)于 JDK/WTK/Ant等基礎(chǔ)設(shè)施工具,可以要求開發(fā)人員自己安裝,并設(shè)置好環(huán)境變量。可以編寫適當(dāng)?shù)哪_本,對(duì)環(huán)境以及版本進(jìn)行判斷。 每次構(gòu)建之前,先判斷,若不滿足,則不予構(gòu)建。

      9. 結(jié)束語(yǔ)
J2ME開發(fā)看似簡(jiǎn)單,里面還是有很多東西需要注意的,特別是面對(duì) 眾多品牌手機(jī)的情況下,希望我的經(jīng)驗(yàn)也能對(duì)你有所幫助。


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

返回版面帖子列表

j2me手機(jī)開發(fā)MID格式詳解








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
亚洲激情一二三区| 日韩亚洲欧美一区| 欧美日韩在线不卡一区| 美女三级99| 欧美成ee人免费视频| 日韩中文一区| 自拍偷拍亚洲色图欧美| 欧美午夜片在线看| 日韩免费高清av| 中文字幕av在线一区二区三区| 中文字幕欧美三区| 一区二区三区中文字幕在线观看| 香蕉成人伊视频在线观看| 九九热在线视频观看这里只有精品| 国产精品资源在线看| 91啪亚洲精品| 日韩精品久久久毛片一区二区| 亚洲一区二区三区精品在线观看| 永久久久久久| 欧美一二三四区在线| 久久久精品一品道一区| 自拍偷拍亚洲综合| 日韩不卡免费视频| 粗大黑人巨茎大战欧美成人| 国产欧美日韩伦理| 一本一道久久a久久精品| 6080亚洲精品一区二区| 欧美激情一区二区三区全黄| 亚洲国产视频一区二区| 免费高清在线一区| 91成人免费观看| 伊人情人网综合| 久久久不卡网国产精品一区| 亚洲国产视频一区| 99精品国产99久久久久久白柏 | 不卡一二三区首页| 免费国产一区| 欧美日韩成人在线| 中文字幕一区二区三区在线播放| 秋霞影院一区二区| 国产精品免费一区二区| 欧美午夜电影一区| 中文字幕一区二区三区色视频| 捆绑调教一区二区三区| 国产亚洲二区| 91精品在线观看入口| 又紧又大又爽精品一区二区| 国产精品一区二区你懂的| 免费中文日韩| 日韩午夜中文字幕| 午夜亚洲国产au精品一区二区| 99精品视频在线观看免费| 最近看过的日韩成人| 中文字幕乱码亚洲精品一区 | 国产精品一区二区三区精品| 欧洲亚洲国产日韩| 亚洲天堂福利av| 成人黄页毛片网站| 色视频成人在线观看免| 一区精品在线播放| 波多野结衣91| 欧美少妇xxx| 亚洲高清免费观看高清完整版在线观看 | 成人免费在线播放视频| 成人在线综合网站| 欧美日韩日日骚| 亚洲高清久久久| 国产一区免费在线观看| 精品国产欧美一区二区| 狠狠色丁香婷综合久久| 亚洲bbw性色大片| 中文字幕一区二区三区在线不卡 | 日韩一区二区在线观看| 亚洲h在线观看| 好吊色欧美一区二区三区视频| 制服视频三区第一页精品| 日本人妖一区二区| 日韩精品av一区二区三区| 国产精品久久三| 99久久一区三区四区免费| 精品在线你懂的| 色先锋资源久久综合| 亚洲自拍与偷拍| 欧美激情第一页在线观看| 国产精品久久久久久一区二区三区 | 久久99精品久久久久久国产越南 | 成人免费在线看片| 精品国产乱码久久久久久蜜臀| 国产在线麻豆精品观看| 色婷婷精品久久二区二区蜜臂av| 一区二区三区免费看视频| 久久草视频在线看| 中文字幕一区在线| 狠狠干一区二区| 日韩一区欧美一区| 精品欧美国产| 亚洲少妇30p| 欧美三级电影在线播放| 亚洲欧美日韩国产综合在线| 国产亚洲欧美一区二区三区| 欧美激情在线一区二区三区| 国产精品一 二 三| 国产精品久久久久影院色老大| 91精品国产一区二区三区动漫| 久久久综合精品| 国产日本一区二区三区| 国产精品欧美经典| 国内外成人免费视频| 亚洲三级小视频| 亚洲精品一区二区三区av| 日本成人在线电影网| 欧美视频一区二区| 国产精品99久久久久久宅男| 日韩视频在线永久播放| 成人av中文字幕| 久久精品免费在线观看| 九九九九九九精品| 亚洲午夜国产一区99re久久| 在线免费观看成人| 精品无人码麻豆乱码1区2区 | 欧美四级电影网| 国产精品一二三四五| 精品久久久久久最新网址| 99国产高清| 亚洲一区在线播放| 欧美色综合影院| 成人app软件下载大全免费| 日本一区二区成人| 欧美在线播放一区| 麻豆一区二区99久久久久| 日韩三区在线观看| 国内一区在线| 蜜桃av一区二区在线观看| 91亚洲精品久久久蜜桃| 久久精品视频一区二区三区| 免费观看成人高| 久久9热精品视频| 精品电影一区二区三区 | 96成人在线视频| 亚洲一区中文在线| 91精品久久久久久久久99蜜臂| 99精彩视频在线观看免费| 成人免费在线视频| 精品视频在线看| 国产精品免费一区二区三区在线观看| 亚洲制服欧美中文字幕中文字幕| 欧美性色aⅴ视频一区日韩精品| 99久久久精品| 性欧美疯狂xxxxbbbb| 欧美mv日韩mv国产| 日韩高清国产精品| 丁香婷婷综合色啪| 亚洲在线观看免费视频| 91麻豆精品久久久久蜜臀| 国精产品99永久一区一区| 麻豆成人在线观看| 中文字幕精品一区| 欧美日韩精品免费观看视频 | 懂色中文一区二区三区在线视频| 性做久久久久久久免费看| 精品99999| 色婷婷久久99综合精品jk白丝| 成人动漫一区二区| 日韩国产欧美在线播放| 国产片一区二区三区| 欧洲精品在线观看| 蜜桃成人免费视频| 国产99久久久国产精品潘金网站| 亚洲欧美韩国综合色| 日韩片之四级片| 色综合视频一区二区三区高清| 99久久久久国产精品免费| 黄页网站大全一区二区| 亚洲综合激情网| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲第一电影网| 337p粉嫩大胆色噜噜噜噜亚洲| 色综合色综合色综合色综合色综合| 99www免费人成精品| 国产精品1区2区3区在线观看| 亚洲精品成人在线| 国产视频在线观看一区二区三区| 精品污污网站免费看| 区一区二区三区中文字幕| 91麻豆国产自产在线观看| 国内精品视频666| 丝袜亚洲另类丝袜在线| 国产精品美女一区二区在线观看| 欧美一区二区在线视频| 91久久精品网| 亚洲欧洲精品在线| 国产乱码精品一区二区三区卡| 国产精品伊人色| 青青草国产精品97视觉盛宴| 亚洲免费观看高清完整版在线| 国产亚洲欧美色| 精品久久一区二区三区| 91精品国产91热久久久做人人 | 国产精品久久久久久妇女6080| 精品国产91洋老外米糕|