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