blackberry平臺J2ME編程指南(五)

3 開發J2ME應用程序   

3.1介紹

      在這一章中,我們將複習一下在爲小型設備開發應用程序時需要牢記的一些注意事項。我們將看一下在使用 J2SE 編譯 J2ME 應用程序時調用編譯器的方法。最後我們將探究打包和部署,以及在這個過程中提前驗證所扮演的角色  

3.2 設計開發小型設備應用程序要注意的事項

      爲小型設備開發應用程序,需要您在設計階段制定某種策略。最好是在開始編寫代碼之前,戰略性地爲小型設備設計應用程序。由於無法考慮到所有的 "Gotchas" ,在開發應用程序之前更正代碼是一件很痛苦的工作。
      下面是一些可以考慮的設計策略:
      · 保持程序簡單。除去不必要的功能,如果可能的話,將它們做成獨立的、次要的應用程序。
      · 程序越小越好。這一點對所有的開發者來說應該是顯而易見的。越小的程序佔用的設備內存越少,並且花費的安裝時間越少。可考慮將您的 Java 應用程序打包,作爲壓縮的 Java 檔案 (jar) 文件。
      · 運行時佔用最少的內存。爲儘可能減少運行時佔用的內存,使用標量類型代替對象類型。同時,不依賴垃圾收集程序。您應該在使用完對象時將對象引用置空,這樣可有效管理內存。另外一種減少運行時所需內存的方法是使用惰性實例,它僅在必需時才分配對象。其它一些減少小型設備上過量和峯值內存使用的方法有快速釋放資源、重新使用對象以及避免異常。 

3.3 設計開發移動設備應用程序的注意事項

      開發移動設備應用程序的規則與我們前面提及的開發小型設備的相同:先設計再編碼。讓我們檢查一下開發移動設備應用程序時可考慮的一些設計建議:
      · 讓服務器做大部分的工作。將計算性較強的任務放到服務器上,讓服務器爲您做這些工作。讓移動設備處理界面和最少的計算工作,而讓服務器做繁重的工作。當然,您爲其開發應用程序的移動設備對設備連接到服務器上的難易程度和頻率有重要影響。
      · 謹慎地選擇編程語言。J2ME 仍然處於成長期,可能還不是最好的選擇。根據您的需要,選擇其它的面嚮對象語言,如 C++,可能會更好

3.4 性能注意事項

      爲性能而編碼。下面有一些以獲得最優性能爲目標的編碼方法:
      · 使用局部變量。訪問局部變量比訪問類成員更快。
      · 避免字符串串聯。字符串串聯不僅會降低性能,而且會增加應用程序的內存峯值佔用量。
      · 使用線程,避免同步。任何運行時間超過 1/10 秒的操作都需要一個獨立的線程。避免同步同樣能提高性能。
      · 使用模型視圖控制器 (MVC) 分離模型。MVC 將代碼中控制顯示的邏輯分離出來。  

3.5 編譯注意事項

      同其它的 Java 應用程序一樣,您在打包和部署應用程序之前要先進行編譯。儘管有了 J2ME,您仍然使用 J2SE 編譯器並且需要用適當的選項來進行調用。
      特別的,您需要使用 -bootclasspath 選項來指示編譯器使用 J2ME 類,而不是 J2SE 類。不要在編譯器的 CLASSPATH 中設置配置類。這樣將導致運行時錯誤,因爲不管 CLASSPATH 中有什麼,編譯器將首先自動搜索 J2SE 的核心類。換句話說,編譯器將無法引用特定 J2ME 配置中缺少的類或方法,結果導致在嘗試運行應用程序時出現運行時錯誤。  

3.6 打包和部署注意事項

      由於 J2ME 是爲內存有限的小型設備設計的。大部分常用的 Java 提前驗證已經從虛擬機中除去以形成一個較小的覆蓋區域。結果,在配置之前提前驗證 J2ME 應用程序就很有必要。在運行時會附加一個檢查以確保這個類在提前驗證之後還沒有改變過。
      如何嚴格執行提前驗證或者檢查類的正確性依靠的是工具包。CLDC 提供一個稱爲提前驗證的命令行實用程序,它能夠進行實際的驗證並且可以把一些額外的信息插入到類文件中去。MIDP 使用無線工具包,這種工具包提供一種 GUI 工具,也可從命令行運行這種工具。
      部署工作取決於您要部署的平臺。應用程序必須以一種適合 J2ME 設備類型的格式進行打包和配置,就如簡表定義的那樣。

 

4 J2ME配置 

4.1 J2ME 配置是什麼?      

      正如前面所學,配置將基本運行時環境定義爲一套核心類和一個運行在特定類型設備上的特定的 JVM。您也可以學到 J2ME 的兩種配置類型是 CLDC CDC

      Sun 提供的 J2ME 配置是適合不同層次的市場需求的 -- CLDC 適合小型設備,而 CDC 適合大型設備。J2ME 環境可以被動態地配置爲提供運行應用程序所需要的環境,而不用考慮是否爲設備提供了運行該應用程序所需的所有 Java 技術庫。核心平臺接收應用程序代碼和庫。運行在網絡上的服務器軟件執行配置工作。
      在下面的幾頁中,您將學到關於 CLDC CDC 的更多知識以及與它們關聯的簡表。  

4.2連接限制設備配置 (CLDC)

      CLDC 是由 Java Community Process 創建的。正如 Sun Microsystems Web 站點所定義的那樣,它的標準是:輕便、覆蓋區域最小的 Java 構建塊,適合小型的、有資源限制的設備。
      J2ME CLDC 配置是爲將在業界定義的簡表中使用的一個虛擬機和一套核心庫準備的。正如第 2 章中提及的,一個簡表通過在基本 J2ME 配置頂部提供特定於域的類來爲特定的設備定義應用程序。K 虛擬機 (KVM)、虛擬機的 CLDC 的參考執行和它的 KJava 簡表運行在 CLDC 的頂部。
      CLDC 簡要描述了高度限制設備上每個 J2ME 執行所要求的一套最基本的庫和 Java 虛擬機特徵。CLDC 主要面向那些網絡連接速度慢、能源有限(經常是電池供電)、具有大於等於 128 KB 的穩定內存、以及大於等於 32 KB 的不穩定內存的設備。不穩定內存是不持久的並且沒有寫保護,這意味着如果關掉設備,內存中的內容將全部丟失。而穩定內存中的內容是持久的,並且有寫保護。CLDC 設備使用穩定內存來存儲運行時的庫和 KVM,或存儲爲某個特殊設備創建的另一個虛擬機。不穩定內存被用來分配運行時的內存。

4.3 CLDC 要求

      CLDC 定義了下列要求:
      · 完整的 Java 語言支持(除浮點支持、最終定案和錯誤處理之外)
      · 完整的 JVM 支持
      · CLDC 的安全性
      · 有限國際化的支持
      · 繼承類 -- 所有不針對 CLDC 的類都必須是 J2SE 1.3 類的子類
      · 針對 CLDC 的類都在名爲 javax.microedition 的軟件包和它的子包裏
      javax.microedition 軟件包以外,CLDC API 還由 J2SE 的子集 java.iojava.lang 以及 java.util 等軟件包組成。我們將在 CLDC API 這一章中學習有關的細節問題,然後使用 CLDC API 來開發我們的繪圖應用程序  

4.4 連接設備配置 (CDC)

      連接設備結構 (CDC) 被定義爲一種添加了 CLDC 類的 Java 2 標準版 (J2SE) 的簡化版。因此,CDC 是建立在 CLDC 的基礎之上,並且爲 CLDC 設備開發的應用程序也可以運行在 CDC 設備上。
      CDC 也是由 Java Community Process 開發的,它爲用戶的電子設備和嵌入式設備如智能電話、雙向尋呼機、PDA、家用電器、銷售網絡終端以及汽車導航系統等提供一種標準化的、輕便的、功能齊全的 Java 2 虛擬機構建塊。這些設備運行 32 位的微處理器和超過 2 MB 的內存,這些對於存儲 C 虛擬機和庫是必需的。K 虛擬機支持 CLDC,而 C 虛擬機 (CVM) 支持 CDCCDC 與基礎表相關聯,這一點不在本教程的範圍之內。
4.5 CLDC CDC 的比較

      面這幅圖描述了 CDC CLDC 之間的關係。同時該圖也揭示了它們與整個 J2SE API 系。正如前面所說,CDC 是加上一些額外類的 J2SE 的子集。我們也可以看到 CLDC CDC 的子集。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章