天天看點

JavaME開發流程詳解

JavaME開發流程詳解

完整的MIDP手機程式開發流程如下表(其中混淆為可選):

流程 工具 輸入 輸出
編譯 javac.exe編譯 源檔案(*.java) 未混淆的類檔案(*.class)
混淆 第三方提供的工具 未混淆的類檔案(*.class) 混淆後的類檔案(*.class)
預審 preverify.exe預稽核 混淆後的類檔案(*.class) 經過預先稽核的類檔案(*.class)
打包 jar.exe打包 經過預先稽核的類檔案(*.class) 封包件(*.jar)
編寫描述檔案 文本編輯工具 描述檔案(*.jad)
安裝運作  傳輸工具(IR/BT/資料線/OTA)  封包件(*.jar)和描述檔案(*.jad) 在仿真器或手機上正式運作

下面将會介紹每個步驟。當利用內建開發環境(諸如JBuilder、NetBeans、Sun ONE Studio、Eclipse等)時,這些工具不僅可以很快的幫我們建立起代碼的主幹,而且可以幫助我們自動的完成上面的大部份工作(關于內建開發環境的 利用見後面的章節)。在利用IDE開發之前,開發者有必要了解其中每一步的原理。

編譯:

編譯就是将我們所編制的*.java 文檔案,編譯成為二進制的*.class檔案(計算機隻認識二進制!)。javac.exe是由Sun公司編寫的一個編譯器,它可以把*.java檔案編 譯成為*.class檔案。注意:如果一個*.java檔案中定義了三個類,它就将被編譯成三個*.class檔案。

混淆(可選):

由于class檔案格式透明的緣故,java檔案很容易被反彙編。是以,如果你不希望别人掌握你的源代碼的話,你一定要進行混淆(obfuscate)。 所謂混淆,就是利用工具,将方法名、類名改成沒有實際意義的特定的字元及代号,增加閱讀的難度。這樣就充分的保護了我們自己的知識産權。而且混淆還有個意 想不到的好處,就是減少程式的大小。這是由于混淆器将我們設定的方法名、類名變成沒有意義的短字元或代碼,無形中減少了程式的大小。對于手機程式設計來講 尤為重要,每K的減少都意味着可以獲得更多的空間。混淆器都是第三方軟體開發商提供的,許多都是開源的,可以免費使用。常見的混淆器見下表:

名稱 位址 特點
JODE http://jode.sourceforge.net/ 開源
ProGuard http://proguard.sourceforge.net/ 開源
RetroGuard http://www.retrologic.com/ 開源,中國移動百寶箱強制使用
DashO http://www.preemptive.com/ 商業軟體,一般專業公司使用,昂貴
ZKM http://www.zelix.com/ 商業軟體可試用
JBuilder http://www.borland.com/ 內建開發環境中内附混淆功能,但JBuilder的價格也不便宜。

預稽核:

在完成編譯後,我們必須要對*.class檔案進行預稽核,這和傳統的Java程式(Applet、Servlet)是不同的。因為class在傳輸過程 中容易損壞或是被篡改,傳統的Java程式在運作前,都在本地機器上對.class進行Byte Code的稽核。而對于手機這樣的資源有限裝置而言,在手機上進行大量的此類的稽核是極為浪費資源(如占用CPU的時間、消耗電力等)。是以,我們必須先 在PC機上使用preverify.exe進行一部份預選稽核工作。這樣,在手機上進行的稽核工作就大量減少了。

打包與編寫描述檔案:

MIDP可執行檔案字尾名為jar。利用jar file.class就能将通過預稽核的*.class檔案,打包成 MIDP認可的可執行檔案。字尾名為jad的檔案是jar檔案的描述檔案,jad檔案詳細介紹見第二節。

在仿真器或手機上安裝運作:

有了jar及jad文檔案後,我們就可以把它們放到仿真器或手機上運作了。至于如何把它們放到手機上,根據手機的功能不同,有如下方法可以選擇:

  • 使用資料線,将PC與手機相連,下載下傳檔案
  • 使用紅外線
  • 使用藍牙
  • 使用OTA空中下載下傳(利用短信/WAP)

繼續閱讀