文章出處 3G視線
連接 : http://javaeye.5d6d.com/thread-234-1-1.html
J2ME Polish 全攻略之入門
在看這篇文章之前,我希望讀者先瀏覽漫游 J2ME Polish--比較詳細(xì)的文檔.doc 這篇文章
內(nèi)容簡介
J2ME Polish現(xiàn)在很火,很多手機(jī)軟件開發(fā)商都在采用這東西進(jìn)行二次開發(fā)。然后很可惜,網(wǎng)絡(luò)上關(guān)于這方面的中文比較少,所以我根據(jù)我學(xué)習(xí)的經(jīng)過,整理成文章,希望對初學(xué)著以及愛好者有所幫助。
1.到官方http://www.j2mepolish.org/ 上下載安裝包,現(xiàn)在最新版本是2.0 R4版本,本人建議安裝1.2.4版本,因為2.0R4版本可能存在一些不兼容以及一些bug。本人用2.0R4版本的時候,有些例子并不能通過測試
運行cmd,然后輸入java –jar D:"J2ME Polish.jar即可出現(xiàn)提示窗口,然后點下一步,就ok了。
上面的目錄結(jié)構(gòu)很清晰。
其中最import是系統(tǒng)引入的包,其中包括一個bulid的包,以及其他一些,midp等規(guī)范包。
Samples 是例子文件,我的版本里面只有兩個例子,一個是menu,描述的是,采用J2ME Polish GUI,創(chuàng)建適合各個平臺的統(tǒng)一外觀的包,基于CSS設(shè)計的。是UI設(shè)計的典范,可以具體研究。 Sysinfo是一個系統(tǒng)信息的測試?yán)樱w了幾乎所有平臺上對jcp規(guī)范支持等測試信息,是我們開發(fā)程序中必須要用到的知識。
Doc是文檔,此文檔暫沒有中文。我們學(xué)習(xí)起來比較吃力
Api是J2ME Polish提供給開發(fā)人員使用的公共接口
Bin一些可執(zhí)行文件
其中readme.txt文件,關(guān)于項目的一些描述
LICENSE.txt 版權(quán)信息,作為商業(yè)開發(fā)者,一定要看哦
對于頂級目錄下的xml文件,基本上都是J2ME Polish的描述文件,很重要的哦。是研究它的最直接的資料,可惜,我也是剛學(xué)習(xí),沒有深入去了解它
其中groups.xml定義了不同的平臺下面的東西,比如s40,s60,s80,390,等api等
Vendors.xml定義了廠商的規(guī)范,特性等,比如鍵值的定義啊。J2ME Polish處理鍵值事件的時候主要是對這些規(guī)范進(jìn)行預(yù)編譯,所以適合很多平臺,廠商。
Devices.xml是對各個平臺支持規(guī)范程度的描述,此文件包含了很多個平臺支持描述。
上面的所有配置都是基于xml了。可以自己擴(kuò)展,api,配置,以及平臺
三.運行例子Menu, SysInfo。
2.查看bulid.xml文件,看看它做了些說明手機(jī),讓我們的工作這么輕松愉快
由于貼xml文件,word并沒有進(jìn)行格式化,所以我這里重點介紹下。
<project name="enough-j2mepolish-example" default="j2mepolish">
這段是說,建立一個project,默認(rèn)執(zhí)行的target是j2mepolish。
<property name="wtk.home" , value="D:"WTK22" />
WTK的安裝目錄
<property name="polish.home", value="D:"Program Files"J2ME-Polish" />
J2ME Polish 的安裝目錄
<taskdef name="j2mepolish"
classname="de.enough.polish.ant.PolishTask"
classpath="${polish.home}/import/enough-j2mepolish-build.jar" border="0">{polish.home}/import/jdom.jar
" border="0">{polish.home}/import/proguard.jar
" border="0">{polish.home}/yguard-lib.jar
{wtk.home}/wtklib/kenv.zip"/>
這個很重要,定義說。執(zhí)行這個targer的 Task,這里是指執(zhí)行de.enough.polish.ant.PolishTask這個類。具體可以看源代碼,看看里面做了些說明手腳
<obfuscator name="ProGuard" useDefaultPackage="true" unless="test" >
<!--
You can set additional parameters here, e.g.:
<parameter name="optimize" value="false" />
-->
</obfuscator>
這個用來打包用的,采用ProGuard混淆器
其他的自己研究。
我們現(xiàn)在來看看,運行build.xml后生成了些什么呢。不看不知道,一看嚇一跳,
在build的文件夾下面,我發(fā)現(xiàn)了好多文件,全部是對于平臺不同的資源源代碼。原來,J2ME-Polish的原理是,通過ant build的擴(kuò)展,然后通過自己的一套API,把用戶的代碼轉(zhuǎn)換成對應(yīng)各個平臺的源代碼,然后編譯,打包。原理雖然簡單,但是這一套卻是要花很多功夫ide哦。我現(xiàn)在開始有點佩服J2ME Polish的創(chuàng)意了。也難怪,我的主管說J2ME Polish是個好東西,好以后繼續(xù)學(xué)習(xí)J2ME Polish的源代碼,繼續(xù)探討。
上面的例子是基于J2ME – Polish GUI的,現(xiàn)在的例子是不import任何的J2ME Polish MIDP相關(guān)的API,這樣例子對應(yīng)需要開發(fā)。這個例子更簡單,按照我剛才所寫的方法辦即可。
順便介紹下這個例子,這個例子對應(yīng)開發(fā)手機(jī)軟件來說,也是很有用的。里面包含了對JSR規(guī)范支持的測試,已經(jīng)屏幕,按鍵等相關(guān)的測試,很有用。