淺談將所有Java ME資源整合到一個SDK中
Java ME中的“Device fragmentation”這個問題一直困擾著移動應用程序的開發(fā)者。在市場上出現(xiàn)的數(shù)以百計的設(shè)備中,很難知道哪些設(shè)備可以擁有新的應用程序。甚至當只針對一些設(shè)備的時候,也很難決定這些設(shè)備所支持的特征和功能的最小公分母。這使得構(gòu)建應用程序變得非常困那。(有關(guān)device fragmentation的各種問題的信息請參看Damith C. Rajapakse的Web page)。
雖然“device fragmentation“一直是——可能永遠都是Java Platform Micro Edition (ME)開發(fā)中棘手的問題,但至少Java ME 開發(fā)者現(xiàn)在可以期待在SDK中的一些碎片整理。2008年底,Sun發(fā)布了Java ME SDK version 3.0的初期訪問版本。這個包將Java ME開發(fā)者工具(runtime, emulator & code editors)合并到一個SDK中,工具還包括:
Connected Limited Device Configuration (CLDC)
Connected Device Configuration (CDC)
Blu-ray Disc Java (BD-J)
盡管它帶有“3.0”的字樣,但是不要去尋找1.0或是2.0 SDK版本。這是該工具的***個發(fā)布版本。據(jù)推測,它的版本號事實上是基于先前已存在的Sun Wireless Toolkits for CLDC (WTK)的兩個主要版本。但是,這個工具也合并了在Sun Java Toolkit for CDC (version 1.0)中的工具,同時也合并了BD—J的工具和庫和Lightweight User Interface Toolkit (LWUIT)。
Java ME下載并安裝
你可以從java.sun.com下載Java ME SDK 3.0 的初期訪問版本。根據(jù)Sun的網(wǎng)頁上的產(chǎn)品要求,你的開發(fā)機器必須是WindowsXP或是Vista(32bit)系統(tǒng),帶有最小200MB硬盤空間,1GB RAM和1GHz Pentium CPU。除此之外,SDK需要Java 6 (a.k.a Java 1.6)。其他的軟件或是庫需要取決于你開發(fā)和測試的應用程序類型。
SDK需要在一個你必須安裝的55+ MB可執(zhí)行文件中下載。當下載的時候,在你的系統(tǒng)中執(zhí)行sun_java_me_sdk-3_0-ea-win.exe。安裝非常簡單.簡單的指定哪里安裝SDK,指出哪里放置Java SDK (Java 1.6 或更好的)(參見Figure 1)。你也可以選擇是否讓軟件檢查自動更新,這是這個初期訪問產(chǎn)品的有先見之明的地方。
#p#
它看起來像NetBeans!
當你開始使用SDK的時候,NetBeans 開發(fā)者可能會注意到一個同NetBeans UI極其相似的情況(參看Figure 2 &Figure 3)。
事實上,SDK是基于NetBeans平臺。SDK和NetBeans 分享一個項目平臺,可以再SDK和NetBeans之間往來開發(fā)(通過使用NetBeans Mobility Pack)。我有很多在NetBeans中構(gòu)建的Java ME 應用程序 。在SDK中使用相同的NetBeans項目所做的所有事情就是在SDK的File菜單中使用Open Project選項并在我的舊NetBeans項目中顯示SDK位置。通過將一個Java ME SDK圖標放在包含Java ME 代碼的文件夾旁邊(參見Figure 4),SDK的Open Project對話框窗口幫助從我的NetBeans項目文件夾中的其他類型的項目中識別出Java ME項目。
對于那些在WTK和CDC Toolkits中的項目,這些項目通過New Toolkit 對話框可以被輸入或轉(zhuǎn)換成新的工具包,只要從SDK的File菜單中選擇New Project,而且對話框窗口會一步一步引導你來將這些項目轉(zhuǎn)換成NetBeans/Java ME SDK 項目系統(tǒng)(參見Figure 5& Figure 6)。
#p#
顯著特點
所以,這個新的SDK能提供什么呢? 它與其他的工具有什么不同?以下列出在Java ME SDK3.0中的一些顯著特點。
Profiling
定位和消除潛在的性能瓶頸和內(nèi)存問題都是在任何類型的應用程序中非??嚯y的任務(wù)。但JVM管理內(nèi)存的時候,你可以不經(jīng)意的創(chuàng)建一些在一個應用程序中引用它們的有效性的Java對象,創(chuàng)建一個實際上存在的內(nèi)存泄漏。在Java ME應用程序中,資源是很有限的,這些類型的問題會迅速變成災難性的問題。
Profiler是可以讓你可以監(jiān)測正在運行的程序的很多方面,例如堆,線程,內(nèi)存消耗和性能的工具,這些都是為了避免在部署程序中的資源問題。SDK同時伴有一個profiler,你可以使用它監(jiān)測CLDC/MIDP程序。另外,profiler是基于NetBeans profiler的,反過來,使用Visual VM,它是Sun提供的profiler是同Java SE6 一起的。
你必須為每一個設(shè)備模擬器啟用profiler。當你已經(jīng)創(chuàng)建一個應用程序并且它成功的在設(shè)備模擬器上運行的時候,在SDK的Device Selector窗口中右鍵點擊device并選擇Properties。在設(shè)備的Properties窗口中,通過檢查Enable Profiler復選框啟用profiling。你可能還想要檢查將要收集profiling data的文件位置(參看Figure 7 & Figure 8)。
設(shè)備設(shè)置prolife之后,在設(shè)備模擬器上運行一個程序來測試你想要收集的執(zhí)行數(shù)據(jù)的代碼。Profile數(shù)據(jù)直到程序退出時才被收集。當你退出程序的時候,檢查Output窗口。Profile文件的位置會再次在Output窗口中列出(參見Figure 9)。
Profile數(shù)據(jù)收集之后,從SDK上的Profile菜單中選擇Import Java ME SDK Snapshot。在接下來的窗口中,輸入profile數(shù)據(jù)的位置,該位置是在程序結(jié)束運行時在Output窗口中指定的位置。一個窗口將顯示在程序執(zhí)行期間的CPU snapshot(參見Figure 10 & Figure 11)。各種標簽和粒度設(shè)置(package, class 和methods)讓你深入到方法調(diào)用和次數(shù)以杜絕潛在的問題。
Java ME SDK不支持CDC 應用程序的profiling。根據(jù)來自Sun Java ME SDK開發(fā)小組的 Radko Najman所講,CDC profiler打算在下一個SDK版本中推出。
【編輯推薦】