程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> J2ME開發環境搭建 之 Sun WTK

J2ME開發環境搭建 之 Sun WTK

編輯:J2ME
什麼是J2ME Wireless Toolkit

WTK 的全稱是Sun J2ME Wireless Toolkit —— Sun的無線開發工具包,使用其中的工具可以開發在與 Java Technology for the Wireless Industry (JTWI, JSR 185) 規范兼容的設備上運行的 Java 應用程序。該工具箱包含生成工具、實用程序以及設備仿真器。到本文寫作時為止可以獲取有四個版本,分別是1.0.4, 2.0, 2.1和2.2。每個版本都包括英語,日語,簡體中文,繁體中文4個語種包。

1.0.4版只能夠開發MIDP1.0 應用程序。

2.0版只能夠開發MIDP2.0 應用程序。

2.1版則可以同時開發MIDP1.0, JTWI(CLDC 1.0, MIDP2.0, WMA1.1, 可改用CLDC1.1或加入MMAPI1.1),自定義(自己隨機組合Configuration, Profile以及Optional Package)三種環境。

2.2版中,WTK支持MIDP 2.0, CLDC 1.1, WMA 2.0, MMAPI 1.1, Web Services (JSR 172), File and PIM APIs (JSR 75), Bluetooth and OBEX APIs (JSR 82), and 3D Graphics (JSR 184);同時您也可以使用該版開發面向CLDC1.0 和MIDP1.0的應用程序。




系統要求上,WTK2.2至少需要50MB可用硬盤,128MB系統RAM和800MHZ Pentium III CPU。




你可以在sun的官方網站免費下載。

WTK2.2 下載鏈接(需要先登陸):

http://sdlcweb3b.sun.com/ECom/ECoMactionServlet;JSessionid=FE979CDFE94DE539C8DE6CF74FED7878










第二節 J2ME WTK的內容和文件結構

在說明WTK文件結構之前,讓我們首先把它安裝起來。

WTK的安裝程序與普通程序一樣簡單,只有一點需要注意,由於WTK自身並沒有附帶Java的運行環境JDK,所以,在WTK安裝之前你需要安裝自己的JDK(筆者這裡選用的是JDK1.4.2)。

WTK會首先自動檢測當前系統已有的Java虛擬機:



然後顯示出當前虛擬機所在路徑



您在確定無誤後,就可以繼續了,最後安裝成功後,您將得到一個包括多種實用工具的開發包。






無論哪個版本的WTK都會包括以下幾個目錄:

appdb目錄: RMS數據庫信息

aPPS目錄: WTK自帶的demo程序

bin目錄: J2ME開發工具執行文件

docs目錄: 各種幫助與說明文件

lib目錄: J2ME程序庫,Jar包與控制文件

session目錄:性能監控保存信息

wtklib目錄: JWTK主程序與模擬器外觀




WTK是用來開發MIDP的,為了讓MIDlet可以順利編譯和執行,WTK必須具有CLDC和MIDP的類庫,WTK可以幫助我們省去額外安裝調試這些類庫的時間。而不同版本的WTK包含的程序庫內容是不一樣的,比如說2.0中包含了midpapi.jar, wma.jar, mmapi.jar,而在2.1中則變為了cldcapi10. jar, cldcapi11.jar, midpapi10.jar, midpapi20.jar, wma.jar以及mmapi.jar;在2.2中,wma.jar又細分為wma11.jar, wma20.jar。如果您在開發中需要某個特定的jar包而當前的WTK版本又沒有時,您可以簡單把這個jar包拷貝如當前WTK的lib文件夾即可。




aPPS目錄中包括了許多Demo程序,為我們演示了J2ME的一些技術實例,這些往往是很好的學習材料。










第三節使用J2ME WTK創建工程

建立新項目

下面讓我們用WTK來創建一個經典的Hello World程序,看看這水有多深。

在WTK的程序列表中運行KToolbar,打開WTK主界面。WTK的標題菜單簡單明了的列出了這個工具包的可選功能。

單擊新建項目,鍵入新建的項目名和啟動MIDlet名,這裡的項目是一個MIDlet套間,一般情況下是與MIDlet文件(Java文件)同名。






產生項目以後,會出現項目的設置表,您可以選擇當前目標平台,CLDC配置,以及要采用的MIDP可選包。再不需要某個庫文件時,請不要選中它,以減少最後程序大小。

另外,您還可以指定MIDlet的屬性,這些設置將成為JAD,即J2ME程序的描述信息文檔。

我們的Hello World目前不需要其它的附加設置,於是采用默認,確定之後,控制台信息提示建立成功。








WTK產生項目後,不同類型的資源有著相對固定的存放位置。Java源文件被放在aPPS目錄下\Hello World\src下,相關程序資源文件(圖片,音頻)放在\Hello World\res下,應用程序庫文件放在\Hello World\lib下,這在WTK中是必須注意的,即便是相對路徑,也必須是在該類型目錄下建立。




項目創建成功後,我們來創建一個MIDlet文件,MIDlet是J2ME項目文件的入口文件,也是必須的。在\Hello World\src目錄下創建HelloWorld.java,采用默認包,注意,此時創建的Java程序必須是與我們在創建項目時鍵入的MIDlet類名一致。




在新創建的Java文件中輸入代碼,下文是一個簡單的歡迎Form程序。

import Javax.microedition.lcdui.*;

import Javax.microedition.midlet.MIDlet;




public class HelloWorld extends MIDlet {




Display display;


public HelloWorld() {

super();

display = Display.getDisplay(this);

}




protected void startApp(){

Form form = new Form("Hello World!");

form.append("Welcome to J2ME world!");

display.setCurrent(form);

}




protected void pauseApp() {




}




protected void destroyApp(boolean arg0){


}

}




完成後保存Java文件,單擊WTK的生成鍵,由WTK為您進行編譯,如果有錯誤生成,則會在控制台中提示。






根據提示信息對MIDlet文件進行修改,再重新生成,直到編譯成功。對編譯成功的程序,執行運行,可以看到彈出一個手機模擬器,顯示出我們的第一個Hello World程序,如果執行有錯,依然會在控制台中給出提示信息。






開啟舊項目

當我們下一次重新啟動WTK的時候,選擇打開項目,WTK會把aPPS目錄下的應用項目全部顯示出來,包括我們剛剛建立的Hello World,選擇載入後,就能夠重新運行了。












第四節執行MIDlet,打包和混淆

執行MIDlet

除了我們剛剛介紹的在KToolbar中執行一個程序,我們還可以在程序組中直接選擇Run MIDP Application…, 這是就可以在彈出的對話框中選擇其它路徑中的JAD程序運行了。











當我們直接選擇運行時,需要注意兩個問題:

1. JAD描述文件與其指定的JAR檔案文件在同一個目錄下。

2. 運行目錄路徑中不要包含中文。

打包成JAR

KToolbar的生成功能只能幫我們將源代碼編譯並預先審核,並不會幫我們產生JAR文件,而我們如果要發布MIDP程序,除了JAD描述文件,JAR是必須的,這就需要打包。

在KToolbar選中項目 —— 包 —— 產生包,可以把整個程序,包括資源文件打包成JAR文件。形成的JAR保存在aPPS\HelloWorld\bin目錄下。









包混淆

在上面的操作中,我們看到,除了“產生包”,另外還有一個“產生混淆包”選項。所謂混淆,是為了防止別人反編譯後讀取源代碼,將程序(.class文件)進行混淆,經過混淆的Java Byte Code可以增加別人反編譯的時間,即便反編譯後,也會因為類名變化成沒有意義的符號而增加理解源程序的難度。更進一步,由於混淆大大縮短的源程序中類,成員變量以及方法名稱,導致生成的JAR體積變小!

目前一般比較常用的混淆器是兩款開源產品:ProGuard和RetroGuard,本文采用前者作為示例,你可以在http://proguard.sourceforge.Net/ 上獲取。

把剛剛獲取的ProGuard解壓,在解壓目錄的lib子目錄中找到proguard.jar文件,將其拷貝到WTK安裝目錄的bin下,再執行混淆包。這是我們將會發現aPPS\HelloWorld\bin下的JAR大小變小了,反編譯後的各個名稱也變得毫無意義了。









第五節 WTK中其它值得關注的功能

到這裡,我們就如何用WTK創建,執行,打包,混淆一個MIDP項目做了比較詳細的介紹。除了以上所說各點,WTK(2.2版)還提供諸多實用功能。這些都可以在編輯 —— 偏好中找到。



例如,當我們需要監視程序性能的時候,可以選中“啟用內存監視器”,在下一次模擬器執行的時候,我們就可讀出程序運行時的內存消耗均值,消耗峰值以及具體產生對象的個數和使用情況。








除了內存監視,我們還可以執行網絡監視,設定存儲區大小和堆棧大小,設定安全簽名和藍牙操作屬性,以盡可能模擬手機實際運行環境,這些功能在進階開發中都是非常實用的。




注意:

雖然WTK為我們提供了各種工具來模擬手機運行環境,但在實際開發中,由於受到手機硬件,網絡條件等諸多限制,MIDP的真實性能在不同機器上會出現不同的反應,與WTK中的表現可能差別更大。




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved