国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

J2ME入門專題系列之二:應(yīng)用程序與簡表

2019-11-18 15:53:39
字體:
供稿:網(wǎng)友

  在此專題系列文章之一的J2ME概述中我們做了入門的概念介紹。接下來本文我們將復(fù)習(xí)一下在為小型設(shè)備開發(fā)應(yīng)用程序時(shí)需要牢記的一些注重事項(xiàng)。我們將看一下在使用 J2SE 編譯 J2ME 應(yīng)用程序時(shí)調(diào)用編譯器的方法。最后我們將探究打包和部署,以及在這個(gè)過程中提前驗(yàn)證所扮演的角色。
  
  設(shè)計(jì)開發(fā)小型設(shè)備應(yīng)用程序要注重的事項(xiàng)
  
  為小型設(shè)備開發(fā)應(yīng)用程序,需要您在設(shè)計(jì)階段制定某種策略。最好是在開始編寫代碼之前,戰(zhàn)略性地為小型設(shè)備設(shè)計(jì)應(yīng)用程序。由于無法考慮到所有的 "gotchas" ,在開發(fā)應(yīng)用程序之前更正代碼是一件很痛苦的工作。
  
  下面是一些可以考慮的設(shè)計(jì)策略:
  
  1、保持程序簡單。除去不必要的功能,假如可能的話,將它們做成獨(dú)立的、次要的應(yīng)用程序。
  
  2、程序越小越好。這一點(diǎn)對(duì)所有的開發(fā)者來說應(yīng)該是顯而易見的。越小的程序占用的設(shè)備內(nèi)存越少,并且花費(fèi)的安裝時(shí)間越少。可考慮將您的 java 應(yīng)用程序打包,作為壓縮的 Java 檔案 (jar) 文件。
  
  3、運(yùn)行時(shí)占用最少的內(nèi)存。為盡可能減少運(yùn)行時(shí)占用的內(nèi)存,使用標(biāo)量類型代替對(duì)象類型。同時(shí),不依靠垃圾收集程序。您應(yīng)該在使用完對(duì)象時(shí)將對(duì)象引用置空,這樣可有效治理內(nèi)存。另外一種減少運(yùn)行時(shí)所需內(nèi)存的方法是使用“惰性”實(shí)例,它僅在必需時(shí)才分配對(duì)象。其它一些減少小型設(shè)備上過量和峰值內(nèi)存使用的方法有快速釋放資源、重新使用對(duì)象以及避免異常。
  
  設(shè)計(jì)開發(fā)移動(dòng)設(shè)備應(yīng)用程序的注重事項(xiàng)
  
  開發(fā)移動(dòng)設(shè)備應(yīng)用程序的規(guī)則與我們前面提及的開發(fā)小型設(shè)備的相同:先設(shè)計(jì)再編碼。讓我們檢查一下開發(fā)移動(dòng)設(shè)備應(yīng)用程序時(shí)可考慮的一些設(shè)計(jì)建議:
  
  1、讓服務(wù)器做大部分的工作。將計(jì)算性較強(qiáng)的任務(wù)放到服務(wù)器上,讓服務(wù)器為您做這些工作。讓移動(dòng)設(shè)備處理界面和最少的計(jì)算工作,而讓服務(wù)器做繁重的工作。當(dāng)然,您為其開發(fā)應(yīng)用程序的移動(dòng)設(shè)備對(duì)設(shè)備連接到服務(wù)器上的難易程度和頻率有重要影響。
  
  2、謹(jǐn)慎地選擇編程語言。J2ME 仍然處于成長期,可能還不是最好的選擇。根據(jù)您的需要,選擇其它的面向?qū)ο笳Z言,如 C++,可能會(huì)更好。
  
  性能注重事項(xiàng)
  
  為性能而編碼。下面有一些以獲得最優(yōu)性能為目標(biāo)的編碼方法:
  
  1、使用局部變量。訪問局部變量比訪問類成員更快。
  
  2、避免字符串串聯(lián)。字符串串聯(lián)不僅會(huì)降低性能,而且會(huì)增加應(yīng)用程序的內(nèi)存峰值占用量。
  
  3、使用線程,避免同步。任何運(yùn)行時(shí)間超過 1/10 秒的操作都需要一個(gè)獨(dú)立的線程。避免同步同樣能提高性能。
  
  4、使用模型視圖控制器 (MVC) 分離模型。MVC 將代碼中控制顯示的邏輯分離出來。
  
  編譯注重事項(xiàng)
  
  同其它的 Java 應(yīng)用程序一樣,您在打包和部署應(yīng)用程序之前要先進(jìn)行編譯。盡管有了 J2ME,您仍然使用 J2SE 編譯器并且需要用適當(dāng)?shù)倪x項(xiàng)來進(jìn)行調(diào)用。
  
  非凡的,您需要使用 -bootclasspath 選項(xiàng)來指示編譯器使用 J2ME 類,而不是 J2SE 類。不要在編譯器的 CLASSPATH 中設(shè)置配置類。這樣將導(dǎo)致運(yùn)行時(shí)錯(cuò)誤,因?yàn)椴还?CLASSPATH 中有什么,編譯器將首先自動(dòng)搜索 J2SE 的核心類。換句話說,編譯器將無法引用特定 J2ME 配置中缺少的類或方法,結(jié)果導(dǎo)致在嘗試運(yùn)行應(yīng)用程序時(shí)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。
  
  打包和部署注重事項(xiàng)
  
  由于 J2ME 是為內(nèi)存有限的小型設(shè)備設(shè)計(jì)的。大部分常用的 Java 提前驗(yàn)證已經(jīng)從虛擬機(jī)中除去以形成一個(gè)較小的覆蓋區(qū)域。結(jié)果,在配置之前提前驗(yàn)證 J2ME 應(yīng)用程序就很有必要。在運(yùn)行時(shí)會(huì)附加一個(gè)檢查以確保這個(gè)類在提前驗(yàn)證之后還沒有改變過。
  
  如何嚴(yán)格執(zhí)行提前驗(yàn)證或者檢查類的正確性依靠的是工具包。CLDC 提供一個(gè)稱為提前驗(yàn)證的命令行實(shí)用程序,它能夠進(jìn)行實(shí)際的驗(yàn)證并且可以把一些額外的信息插入到類文件中去。MIDP 使用無線工具包,這種工具包提供一種 GUI 工具,也可從命令行運(yùn)行這種工具。
  
  部署工作取決于您要部署的平臺(tái)。應(yīng)用程序必須以一種適合 J2ME 設(shè)備類型的格式進(jìn)行打包和配置,就如簡表定義的那樣。
  
  J2ME 簡表是什么?
  
  如我們?cè)谇懊嫣岬降模粋€(gè)簡表定義了受支持設(shè)備的類型。例如,移動(dòng)信息設(shè)備簡表 (MIDP),定義了蜂窩電話的類。它把一些特定于域的類加入J2ME 配置中來定義對(duì)類似設(shè)備的使用。已經(jīng)為 J2ME 定義了兩個(gè)簡表:KJava 和 MIDP 。它們都構(gòu)建在 CLDC 之上。KJava 和 MIDP 都和 CLDC 及小型設(shè)備相關(guān)聯(lián)。
  
  簡表被構(gòu)建在配置的頂部。由于簡表是特定于運(yùn)行應(yīng)用程序的設(shè)備的大小(內(nèi)存的數(shù)量),所以,某個(gè)簡表是與某種特定的配置相關(guān)聯(lián)的。
  
  在綱要簡表上,您可以創(chuàng)建自己的簡表,這種綱要簡表也稱為基礎(chǔ)表,它對(duì)于 CDC 也是可用的。然而,在本教程和本節(jié)中,我們將只重點(diǎn)學(xué)習(xí)建立在 CLDC 上的 KJava 和 MIDP 簡表。
  
  簡表 1:KJava
  
  KJava 是歸 Sun 公司所有的簡表,它包含 KJava API。KJava 簡表建立在 CLDC 配置的頂部。KJava 虛擬機(jī),KVM,像標(biāo)準(zhǔn)的 J2SE 虛擬機(jī)那樣接受相同的字節(jié)代碼和類文件格式。
  
  KJava 包含一個(gè)特定于 Sun 的、運(yùn)行在 Palm 操作系統(tǒng)上的 API。這個(gè) KJava API 和 J2SE 抽象視窗工具包 (AWT) 有很多地方都是相同。然而,由于它不是一個(gè)標(biāo)準(zhǔn)的 J2ME 軟件包,它的主軟件包是 com.sun.kjava。在以后的教程中開發(fā)一些示例應(yīng)用程序時(shí)會(huì)學(xué)到更多關(guān)于 KJava API 的知識(shí)。
  
  簡表 2: MIDP
  
  MIDP 適合諸如蜂窩電話和尋呼機(jī)等移動(dòng)設(shè)備。MIDP 和 KJava 一樣,也是建立在 CLDC 之上的,并且提供一個(gè)標(biāo)準(zhǔn)的運(yùn)行時(shí)環(huán)境,答應(yīng)在終端用戶設(shè)備上動(dòng)態(tài)地部署新的應(yīng)用程序和服務(wù)。
  
  MIDP 是一個(gè)公共的、為移動(dòng)設(shè)備設(shè)計(jì)的工業(yè)標(biāo)準(zhǔn)簡表,它不依靠某個(gè)特定的商家。對(duì)于移動(dòng)應(yīng)用程序開發(fā)來說,它是一個(gè)完整的、受支持的基礎(chǔ)。
  
  MIDP 包含下列軟件包,前面 3 個(gè)是核心 CLDC 軟件包,另加 3 個(gè)特定于 MIDP 的軟件包。我們將在后面的教程中討論每個(gè)軟件包:
  
    java.lang
    java.io
    java.util
    javax.microedition.io
    javax.microedition.lcdui
    javax.microedition.midlet
    javax.microedition.rms
  
  MIDP 取代 KJava
  
  正如我們?cè)谇懊娴恼鹿?jié)中提及的,KJava 是 Sun 公司所擁有的一個(gè) API。它不作為一種完整的、功能齊全的簡表,而是作為一種示范,示范簡表如何與 CLDC 一起工作。根據(jù) CLDC 發(fā)行說明 (其中包含 CLDC 下載版本):
  
  在軟件包 com.sun.kjava 中提供的 GUI 類不是連接限制設(shè)備配置 CLDC 的一部分。Java 2 平臺(tái)袖珍版的正式 GUI 類,將通過 Java Community PRocess 分別定義并被包含進(jìn) J2ME 簡表中。
  
  不管這個(gè)事實(shí)存在與否,KJava 簡表已經(jīng)被早期的采用者廣泛使用了。在JavaOne 的開發(fā)商會(huì)議上,Sun 公司宣稱早期 Palm 操作系統(tǒng)的 MIDP 可用性(MID 簡表的最初發(fā)行版焦點(diǎn)主要集中在無線電話上)。 Palm 操作系統(tǒng) MIDP 的規(guī)格是由 Java Community Process (JCP) 定義的。因此,它是獨(dú)立于供給商的。當(dāng)前眾多限制中的一個(gè) -- 它將隨時(shí)間消失 -- 就是 Palm 操作系統(tǒng)的 MIDP 需要最新的 Palm 操作系統(tǒng),3.5 版。
  
  現(xiàn)在 Palm 操作系統(tǒng)的 MIDP 的規(guī)范仍然在隨著 JCP 不斷發(fā)展,其細(xì)節(jié)也會(huì)隨時(shí)改變。盡管目前還無法確定其發(fā)行日期,但是規(guī)范一旦出臺(tái),將必然減少對(duì) KJava 的需求。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 瑞安市| 永福县| 久治县| 全椒县| 林州市| 镇平县| 杭州市| 丁青县| 黄平县| 虹口区| 南江县| 南平市| 射洪县| 三穗县| 彝良县| 屏边| 法库县| 宁明县| 东台市| 淅川县| 玉龙| 仁寿县| 来安县| 双牌县| 武强县| 钦州市| 辰溪县| 平塘县| 英德市| 康平县| 泗阳县| 台前县| 谷城县| 布拖县| 手机| 鄂温| 南充市| 黔西县| 宁晋县| 汶上县| 彭泽县|