Java Me 嵌入式程序設計chap1_第1頁
Java Me 嵌入式程序設計chap1_第2頁
Java Me 嵌入式程序設計chap1_第3頁
Java Me 嵌入式程序設計chap1_第4頁
Java Me 嵌入式程序設計chap1_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Java Me 嵌入式程序設計張家耀主講北大青鳥就業(yè)明星培訓費用:每學時近100元。學長:王天胥,何宏智,黃忠玉。第1章 Java Me概述本章重點研究: Java ME平臺的架構; 虛擬機、配置、簡表、可選包的內容;MIDlet程序的基本結構MIDlet套件的基本組成 J2ME的規(guī)范。第一章Java Me概述本章簡介本章重點講解Java ME的體系結構,詳細分析每一個軟件層次的組織,明確Java ME的分層結構自下至上是:操作系統(tǒng)、虛擬機、配置、簡表和可選包。進而介紹了MIDP應用程序_MIDlet的基本結構,和MIDlet套件的基本組成。最后介紹相關規(guī)范第一章1.1 Java ME 平臺移

2、動互聯網的時代到來了!越來越多的從不同的角度喊出了同一口號。幾乎每一個農民工手中都有一部手機,但他們中的大多數人沒有PC機。可見手機普及率遠高于PC機。近日發(fā)布的調查顯示:我國通過手機上網的用戶已經超過1.176億。隨著我國具有獨立知識產權3G技術的普及和發(fā)展必然開拓出屬于手機應用的廣闊空間??梢韵胂竽骋惶炷阌檬謾C打開車門,剛一下班就用手機打開熱水器準備好洗澡的熱水,用手機把剛剛收集到的數據發(fā)給老板,匯報工作。是何種愜意的生活。第一章然而手機操作系統(tǒng)市場并不像PC機那樣有統(tǒng)一。從老牌的Symbian和Windows Mobile到后起之秀iPhone 和Android都有這不少的客戶群,而且可

3、以預見不遠的將來還會有更多的廠商進入這個炙手可熱的領域。面對如此眾多的平臺如何找到一種統(tǒng)一的開發(fā)方法,開發(fā)出各種操作系統(tǒng)都兼容的軟件產品呢?Java Me為我們提供了一個很好的解決方案。第一章1991 年, Sun公司中由James Gosling, Bill Joe 等人組成的Green小組開發(fā)了名為Oak的軟件,開發(fā)的目的是用于電視等家用電器的嵌入式應用。Oak語言是Sun公司為一些消費產品而設計的一個通用環(huán)境,最初的目的只是開發(fā)一個獨立于平臺的軟件技術。后來發(fā)展成為Java。發(fā)布之后風靡于WWW世界,廣泛應用于網絡計算。Java語言的設計特點是簡單、安全、易于維護、可移植性強。它采用了虛

4、擬機技術,把源程序編譯成二進制的中間代碼,然后在設備虛擬機上運行,這就是“一次編程、到處運行”的思想。在Java網絡應用大獲成功的同時,也面臨著更多設備都要接入互聯網這樣的挑戰(zhàn)。第一章尤其是眾多廠家和型號的手機要接入互聯網,接入設備操作系統(tǒng)不同,輸入、輸出方式各異,內存和處理機的能力有限,因此對其可移植性提出了更強的要求。為了解決這個問題Sun公司推出了Java的微型版,即Java ME(Java Plantform Micro Edition)Sun公司將Java Me 定義為“Java Platform,Micro Edition provides a robust ,flexible e

5、nvironment for application running on mobile and other embedded device”.好了,從現在開始我們希望能用Java Me這把嵌入式開發(fā)利劍統(tǒng)一手機應用程序開發(fā)這一混亂的領域。第一章1.2 Java ME體系結構Java ME是專門面向小型手持設備,嵌入式應用軟件開發(fā)的平臺,可以應用到移動電話、個人數字助理(PDA)、網絡IP電話、機頂盒、家庭娛樂多媒體系統(tǒng)、信息家用電器以及車載導航等系統(tǒng)中。Java ME面對的是大量不同的設備,這種不同不僅表現為硬件的結構,更大程度上還表現為功能應用的不同。為了適應這眾多不同設備的需求,Java

6、 ME在組織這些設備時采用了分層的概念,它將運行在硬件以上的軟件分成若干個層次,如圖1-1所示。第一章 圖1-1 J2ME軟件的層次結構可選包(Optional Packages)簡表(Profiles) 類庫 配置 (Libraries)(Configuration) 虛擬機 (JVM)本地操作系統(tǒng)(Host Operation System)第一章1.2.1 操作系統(tǒng)在軟件的最底層是操作系統(tǒng)(Host Operating System),它負責管理和配置該手持設備的所有硬件,也就是說其他所有的軟件必須通過操作系統(tǒng)才能使用硬件資源。當前流行的操作系統(tǒng)主要有以下幾種:用于開發(fā)移動電話:Symb

7、ian、Linux、Windows Pocket PC、Palm OS以及最近迅速發(fā)展的iPhone和Android等;用于開發(fā)其他嵌入式設備:VxWorks、Linux、Windows CE等。1.2.2 虛擬機在操作系統(tǒng)之上是Java虛擬機(Java Virtual Machine,JVM),所有的Java程序只能運行在JVM上,為此實現Java開發(fā)平臺必須首先實現JVM。對于Java ME的標準參考實現的虛擬機為CVM和KVM. CVM適用于那些瘦客戶端,如數字機頂盒、車載電子系統(tǒng)等;第一章KVM應用于那些電池供電的手持移動設備,如移動電話、PDA等;CVM和KVM適用的硬件資源是前者高

8、后者低,根據不同的硬件選擇不同的虛擬機。KVM在功能上是CVM的子集。KVM的最大特點是小而高效,只需要幾萬字節(jié)的存儲空間就可以運行。KVM虛擬機和類庫只需占有K量級的存儲空間,即5080KB,具有較高的可移植性和可擴展性。KVM是專門執(zhí)行下載到低端的CLDC設備上的MIDlet程序。KVM虛擬機是根據相應的設備完全重新編寫的,它不是現有JVM的改進產品。雖然Sun公司推薦CVM和KVM作為Java ME的虛擬機,但這不是必需的,實際上,只要滿足配置中的規(guī)范定義,通過兼容性測試就可以作為虛擬機應用在小型設備上。第一章1.2.3 配置層在虛擬機之上的軟件層次是配置(Configurations)

9、,Java ME支持的硬件有很大的差異,不可能構建一個適用于所有設備的開發(fā)平臺,為了滿足不同設備的開發(fā)需求,Java ME引入了配置的概念,屏蔽了不同硬件設備的物理特性。它包含一些核心的類庫,定義了Java虛擬機類型和一些基礎API,當前Java ME存在兩種配置CDC和CLDC。將具有固定連接的、不間斷網絡連接的共享連接信息設備,如電視機頂盒(Set-Top Boxe),網絡電視(Web TV), 支持Intenet的可視電話,汽車娛樂/導航系統(tǒng)等歸為一類即:連接設備配置(Connected Device Configuration, CDC)。另一類是具有間斷網絡通訊能力的個人移動信息設備

10、,如手機、雙向尋呼機、個人數字助理PDA、銷售點終端POS等,為連接受限設備配置(Connected Limited Device Configuration, CLDC)。我們在編寫Java ME的程序之前要根據運行程序的硬件情況選擇合適的配置。第一章1.2.4 簡表層在配置之上的軟件層次是簡表(Profiles),它是某個行業(yè)或者某個領域內的特性概括,每套簡表專門針對某一類設備。例如,移動電話具有一套簡表;PDA也具有一套簡表;數字機頂盒具有另外一套簡表。簡表與它的上一層配置是必須組合使用。簡表以配置為基礎定義了一些附加的類和包,簡表是專門針對某個特定行業(yè)或設備家族上API的最小集合。每個

11、配置上都定義了若干個簡表,如前所述,Java ME中包含了兩個配置CDC和CLDC,相應地,存在著兩套支持不同配置的簡表。支持CDC的簡表包含:FP(Foundation Profile,基礎簡表)、PP(Personal Profile,個人簡表)和PBP(Personal Basic Profile,個人基礎簡表)。支持CLDC的簡表目前只有MIDP(Mobile Information Device Profile,移動信息設備簡表),它是目前移動電話上使用的的主要簡表。第一章 1.2.5 可選包(Optional Package) J2ME通過CLDC、CDC及其對應的簡表規(guī)范了小型設

12、備大部分的通用功能,為了保持良好的擴展性,J2ME引入了可選包,達到進一步擴展功能的目的。下面介紹一些常用的、功能強大的可選包。藍牙功能:它提供用于開發(fā)藍牙通信程序的接口,當然小型設備中必須有藍牙設備才能運行該接口編寫的程序。無線消息功能:它支持無線消息以平臺無關的訪問方式訪問無線資源,它既支持CDC也支持CLDC。第一章移動多媒體功能:它提供了在小型移動設備上處理音頻和視頻等多媒體的能力,包括播放音頻視頻、錄制語音等。它允許在具備攝像功能的設備上錄制視頻,允許在具備麥克風的設備中錄制音頻。移動3D圖形功能:主要用于CLDC 1.1平臺,支持開發(fā)3D圖形程序,特別是Java 3D游戲??蛇x包一

13、般針對新興的技術,進行一些試驗性的探索,如藍牙、Web服務、無線消息等,一旦技術成熟,這些可選包就很可能會合并到簡表甚至配置中。1.3 移動信息設備簡表(MIDP) MIDP簡表它是建立在CLDC連接受限設備配置基礎上的簡表。它定義了移動信息設備特定設備家族的特殊需求。是本書重點介紹信息設備。1.3.1 MIDP目標設備的特征簡表MIDP定義的移動信息設備的特性如下:(1) 小屏幕尺寸,單色或彩色的顯示設備;(2) 單手數字鍵盤、雙手標準鍵盤或觸摸屏的輸入設備;(3) 較少的易失性內存,非易失性內存一般需要128kB用于MIDP組件;8kB用于持久存儲數據;32KB用于Java的虛擬運行時環(huán)境

14、。注意這里并不包括CLDC對內存的需求。(4) 有限帶寬條件下的無線通信;(5) 音頻和視頻采集設備。1.3.2 MIDP簡表涉及到的功能范圍目前MIDP有兩個版本v1.0和v2.0,1.0版本的功能包括應用程序的下載、網絡連接和傳輸、數據庫存儲、計時器和用戶界面。2.0版本擴展了的功能有:應用下載的計費,網絡安全傳輸,數字簽名,域的安全模式,注冊和音頻處理。MIDP功能結構圖如圖1-2所示。圖1-2 MIDP功能結構圖目前大多數移動手機都支持MIDP v2.0的簡表,本書也將以2.0版本為例,介紹Java ME平臺的編程方法。1.3.3 MIDP 類庫MIDP類庫是建立在CLDC類庫基礎上,

15、所以首先可以使用CLDC的四個軟件包中的類有三個是從java 標準版繼承的,一個CLDC所特有的。從java 標準版繼承的軟件包:核心輸入、輸出包:java.io:通過數據流提供系統(tǒng)的輸入、輸出。核心語言包:java.lang:定義MIDP的語言類,在CLDC中java.lang包的基礎上增加了類java.lang.IllegalStateException,它是一個 RuntimeException,指出在不合法或不合適的時間已經調用了一個方法。比如在一個TimerTask安排中調用或者在用戶界面組件容器中請求時拋出這個異常核心實用工具包:java.util:定義MIDP的工具類,在CLDC

16、中java.util包的基礎上增加了類java.util.Timer和java.util.TimerTask。java.util.Timer用于為后臺線程中將要執(zhí)行的任務確定時間;java.util.TimerTask被java.util.Timer類使用,用于為后臺線程中稍后的執(zhí)行定義任務。還有一個包是CLDC特有的包:網絡包:javax.microedition.io:MIDP提供了基于CLDC通用連接框架的支持,在CLDC的基礎之上,新增加了一個接口javax. microedition.io.HttpConnection,為建立HTTP連接提供必要的方法和常量。MIDP自己特有的包有:

17、用戶界面包:javax.microedition.lcdui:為MIDP應用程序提供用戶界面。游戲包:javax.microedition.lcdui.game:為MIDP應用程序提供游戲API(MIDP 2.0規(guī)范支持)。數據持久存儲包:javax.microeition.rms:用來為MIDP提供數據持久存儲機制,應用程序可以存儲數據記錄,以供在以后需要時獲取。應用程序生命周期包:javax.microedition.midlet:定義MIDP應用程序以及應用程序和它所運行環(huán)境之間的交互。聲音媒體包:javax.microedition.media:提供了對移動多媒體的支持。javax.m

18、icroedition.media.control用來提供對聲音媒體的管理、播放和控制功能(MIDP 2.0規(guī)范支持)。MIDP和CLDC所特有包是本書講述的核心內容。在以后的各章中都會指出各章內容所在的包。第一章1.3 MIDP應用程序MIDlet MIDlet是MIDP應用程序的基本執(zhí)行單元,sun公司對MIDP上的應用程序的一個獨特叫法,意思是“MIDP小應用程序”。它是為滿足小型資源受限設備的特殊要求,由MIDP規(guī)范所定義的一種全新的應用程序模型。MIDlet與標準Java程序中的Applet小應用程序一樣,必須運行再一個特定的環(huán)境中,或者運行在以稱之為容器的大應用程序中。這個大容器可

19、以適應不同廠家、不同型號和多種功能的移動設備。然而這個容器的內部為MIDlet提供了一個統(tǒng)一的接口。程序的開發(fā)者只需要編寫規(guī)范的MIDlet就可以了。第一章1.3.1一個最簡單的MIDlet做為MIDP應用編程的例子,我門考察一下一個最簡單的MIDlet,HelloChina程序。主要功能就是能夠在屏幕上顯示“Hello,中國 你好!,”.通過這個例子我們可以了解到MIDlet的基本結構特征。源程序名:HelloChina.javaimport javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class

20、HelloChina extends MIDlet implements CommandListener 第一章private Display display;private Command exitCommand;private TextBox t;public HelloChina() display = Display.getDisplay(this);exitCommand = new Command(Exit,Command.SCREEN,1);t = new TextBox(Hello,中國 你好!,256,TextField.ANY);t.addCommand(exitComma

21、nd);第一章t.setCommandListener(this);public void startApp() display.setCurrent(t);public void pauseApp() public void destroyApp(boolean unconditional) 第一章public void commandAction(Command c,Displayable s) if(c=exitCommand) destroyApp(false);notifyDestroyed();第一章經過編譯,在仿真器運行結果如圖1_3圖1_3 HelloChina運行結果示意圖第

22、一章從這個簡單程序可總結出如下MIDlet程序的基本特征:1.每一個MIDlet程序必須是包javax.microedition.midlet.*;中MIDlet類的子類。作為MIDP應用程序的MIDlet,它一定是MIDlet類的子類。這樣設備的應用管理軟件才能對MIDlet進行管理和控制。在這個例子中MIDlet應用程序HelloChina就是繼承MIDlet 類而來。2.每一個MIDlet可以有一個構造方法。MIDP應用程序模型規(guī)定構造方法僅被系統(tǒng)調用一次,用來初始化一個MIDlet的狀態(tài)。構造函數要執(zhí)行的操作決定于程序的需要。通常將所有要在啟動時執(zhí)行,且只執(zhí)行一次的操作放在構造方法中。

23、同時應小心的捕獲在構造方法中可能出現的異常,并處理之。第一章3. 每一個MIDlet 必須實現用于程序生命周期控制的三個抽象方法。當MIDlet被初始化后就進入它的生命周期,該生命周期包含三個狀態(tài):激活態(tài)(Active)、暫停態(tài)(Paused)和銷毀態(tài)(Destroyed),這三種狀態(tài)的控制完全由JAM來完成。當出現狀態(tài)遷移時,JAM會自動調用MIDlet在本例中出現的三個抽象方法:startApp( )、pauseApp( ) 和destroyApp( )。如圖1-4所示。需要注意狀態(tài)遷移與方法調用的因果關系,狀態(tài)遷移是因,方法調用是果。第一章圖1-4 MIDlet狀態(tài)遷移觸發(fā)的方法調用第一

24、章JAM加載MIDlet后,首先進行初始化的工作,然后將狀態(tài)設置為暫停態(tài),如果在初始化的過程中沒有出現任何異常,那么將MIDlet的狀態(tài)設置為激活態(tài),否則將MIDlet的狀態(tài)設置為銷毀態(tài)。在每次狀態(tài)轉換的時候都要調用相應的方法。為此,我們在定義MIDlet類時需要實現這些狀態(tài)遷移時調用的方法,從而完成我們自定義的過程,一般情況下,在startApp方法中定義程序運行時用到的資源,在pauseApp方法中釋放暫時不使用的資源(避免因為狀態(tài)切換使得系統(tǒng)資源被占用),在destroyApp方法中釋放所有自己定義的資源。第一章在任何時刻,JAM都可能改變MIDlet的狀態(tài),為此這些方法有可能多次調用,

25、于是問題產生了,如果多次調用startApp方法就意味著多次定義資源,為此我們必須設計好一個資源定義的規(guī)劃,一般來說,在startApp方法中定義那些臨時性的資源,在pauseApp方法中釋放startApp方法中定義的那些資源,剩余的資源在MIDlet構造函數中定義。4.MIDlet 通常實現CommandListener接口CommandListener接口的實現是為了應用程序對用戶的操作作出反應。這個接口以及TextBox、Command和Display類,都是javax.microedition.lcdui.*;包的一部分。第一章1.4 MIDlet 套件一個或多個MIDlet及其相關

26、資源的集合被稱為MIDlet套件(MIDlet Suit),它是在目標設備上安裝、更新和刪除MIDP應用程序的基本單位。MIDlet套件通常被封裝到一個Java檔案文件(Java Archive File, 即Jar文件中)它包括了一系列文件:(1)實現MIDlet的類文件;(2)MIDlet中所有用到的資源文件(如圖標文件,聲音文件等);(3)描述Jar文件內容的清單文件(Manifest File)。此外,每一個Jar文件還配有有一個用來描述MIDlet套件的描述文件,該文件以.jad為后綴。套件結構如圖1_5第一章1_5MIDlet 套件結構第一章1.4.1清單文件(Manifest文件

27、)Manifest(清單)文件是文本格式的文件,它定義了MIDlet套件的屬性,其中有6個屬性是必須包含的。除此之外,用戶還可以自定義一些屬性。 Manifest(清單)文件包含的6個必要屬性MIDlet-Name :MIDlet套件的名稱MIDlet-Version :MIDlet套件的版本,格式為:a.b.cMIDlet-Vendor :MIDlet套件的開發(fā)人員MIDlet- :MIDlet套件中每個MIDlet的描述,該描述可以分成三個內容:名稱、圖標名和類名。n要由一個從1開始的數字值替換MicroEdition-Configuration :MIDlet套件所需要的配置的類型和版本

28、MicroEdition-Profile :MIDlet套件所需要的簡表的類型和版本,如果出現多個版本,則要用空格分離 第一章Manifest(清單)文件定義的可選屬性MIDlet-Icon :MIDlet套件的圖標,必須是擴展名為 .png的文件;MIDlet-Description :MIDlet套件的描述;MIDlet-Info-URL :MIDlet套件更多信息的URL;MIDlet-Data-Size :MIDlet套件需要的最小持久存儲空間的大小,以字節(jié)為單位。如果不存在此屬性,說明不需要持久存儲;MIDlet-Permissions :MIDlet套件的權限許可列表;MIDlet

29、-Permissions-Opt :MIDlet套件的可選權限許可列表MIDlet-Push-: MIDlet套件push注冊項;MIDlet-Delete-Notify :MIDlet套件刪除提示內容。第一章當MIDlet套件安裝到硬件設備上時,清單文件的擴展名會被更新為.mf。一個典型的清單文件如下:MIDlet-Name: HelloWorld MIDletMIDlet-Version: 2.0MIDlet-Vendor: myStudioMIDlet-1: HelloWorldMIDlet, /images/HelloWorld.png, HelloWorld.HelloWorldMI

30、DletMicroEdition-Prfile: MIDP-2.0MicroEdition-Configuration: CLDC-1.1清單中每行對應一種屬性,定義格式為:“屬性名:屬性值”。下面具體分析一下該文件中定義的屬性的含義。由上面的典型清單文件我們得知,MIDlet套件的名稱是HelloWorld MIDlet,版本號為2.0,版本號主要用于程序的更新。制作該MIDlet套件的人員名稱是myStudio。第一章該MIDlet套件包含一個MIDlet類,名稱是HelloWorldMIDlet,MIDlet-屬性后可以帶三個值:MIDlet的名稱、該MIDlet的圖標和MIDlet類的

31、名稱。最后該MIDlet套件使用的簡表是MIDP-2.0,使用的配置是CLDC-1.1。1.4.2JAD文件JAD(應用程序描述)文件(擴展名為.jad)用來描述MIDlet套件的基本信息和運行信息,它并不是套件的一部分。主要功能是向應用程序管理器提供對應的JAR文件的信息,該信息提示了此套件是否滿足目標硬件的運行要求。JAD文件的格式與清單文件類似,但定義的屬性有些不同。Jad文件具體屬性有6個是必需的,如下:第一章MIDlet-Name :MIDlet套件的名稱MIDlet-Version: MIDlet套件的版本,格式為:a.b.cMIDlet-Vendor: MIDlet套件的開發(fā)人員

32、MIDlet- :MIDlet套件中每個MIDlet的描述,該描述可以分成三個內容:名稱、圖標名和類名。n要由一個從1開始的數字值替換MIDlet-JAR-URL:MIDlet套件JAR文件的位置MIDlet-JAR-Size:MIDlet套件JAR文件的大小Jad文件具體屬性可選如下:MIDlet-Icon:MIDlet套件的圖標,必須是擴展名為.png的文件MIDlet-Description:MIDlet套件的描述MIDlet-Info-URL:MIDlet套件更多信息的URLMIDlet-Data-Size:MIDlet套件需要的最小持久存儲空間的大小,以字節(jié)為單位。如果不存在此屬性,

33、說明不需要持久存儲MIDlet-Permissions:MIDlet套件的權限許可列表MIDlet-Permissions-Opt:MIDlet套件的可選權限許可列表MIDlet-Push-:MIDlet套件push注冊項MIDlet-Install-Notify:MIDlet套件安裝提示內容MIDlet-Delete-Notify:MIDlet套件刪除提示內容MIDlet-Delete-ConfirmMIDlet套件刪除確認內容第一章下面我們分析一個典型的JAD文件:MIDlet-Name: HelloWorldMIDlet-Vendor: myStudioMIDlet-Version: 1

34、.0.1MIDlet-Description: a example of MIDletMIDlet-Info-URL: http:/info.htmlMIDlet-DataSize:256MIDlet-Jar-Size: 12543MIDlet-Jar-URL: http:/midlets.html第一章這個JAD文件說明:套件名稱是HelloWorld,出版廠商是myStudio,版本是1.0.1,描述是a example of MIDlet,參考網站是http:/info.html,數據大小是256,JAR文件大小是12543,JAR所處的位置是http:/midlets.html。6JA

35、M或AMSJAM(Java Application Manager,Java應用程序管理器)或AMS(Application Management Software)根據JAD文件的描述將MIDlet套件的內容文件JAR,安裝到硬件設備,并具有運行和管理的功能。如果用戶需要將MIDlet套件從硬件設備中移出,則要通過JAM的操作來實現。由此可見JAM隨著硬件設備的不同而不同,一般來說,每一種硬件設備的生產廠商會附帶相應的應用程序管理器。第一章我們需要注意兩個問題:MIDlet套件的運行安全和JAD文件與JAR文件的關系。在程序運行時,如果硬件設備支持多個MIDlet的并發(fā)運行,那么同一個套件內

36、的所有MIDlet都在同一個虛擬機中運行,于是數據實現了共享。另外Java的同步機制保證了數據的合法訪問。這里的同步機制表現為:在虛擬機中,無論套件有多少個MIDlet在運行,同一時刻只有一個實例在占用虛擬機,于是避免了各MIDlet線程的同時訪問。在持久存儲方面,套件內的MIDlet不能訪問套件以外的持久存儲,從而防范了惡意代碼非法地注入套件內。盡管如此,MIDlet仍然被認為是不安全的,主要原因是在J2SE中有安全管理和沙箱機制,而由于硬件資源的限制,這些內容在MIDlet中都不存在,而且沒有任何有效機制使用戶確信程序的來源可靠。為此MIDlet的安全性仍有待提高。一個完整的MIDP應用程

37、序應該由一個JAD文件和一個JAR文件組成。JAD文件指明了JAR文件的位置。一般來說移動設備的網絡都比較慢,用戶先下載較小的JAD文件,確定自己的硬件條件確實符合后,再下載JAR文件。否則,用戶可能耗費很長時間下載到JAR文件,卻發(fā)現硬件條件不符合而無法運行。第一章1.5 Java ME的標準規(guī)范Java ME是通過Java社團(Java Community Process,JCP)定義各種規(guī)范的。每個人都能夠通過JCP參與到規(guī)范的制定工作中。當組織成員由于某種特定的目的而需要擴展Java平臺時,會提交一個Java請求規(guī)范(Java Specification Requests, JSR),

38、如果這個JSR被接受,則進入開發(fā)階段,此時要組成一個專家組(Expert Group, EP)為這個JSR定義一個正式的規(guī)范,這個專家組由JCP部分成員,即相關專家組成,當這個規(guī)范完成后,會發(fā)表供其他JCP和社會公眾討論。之后在各種評論和反饋的基礎上進行修訂,最后,由JCP執(zhí)行委員會投票通過才被接收為正式的Java標準。Java ME的配置、簡表和可選包都是通過JCP定義,并最終以JSR來發(fā)布。第一章各個JSR分別從不同的角度對Java虛擬機的能力進行了規(guī)范,并命名了一個數字編號,如JSR75規(guī)定了Java應用如何通過虛擬機提供的接口訪問終端操作系統(tǒng)的PIM數據和文件系統(tǒng)。我們可以把Java

39、Me理解為針對小型嵌入式設備或移動設備的一系列技術和規(guī)范的總稱。Java Me平臺的MSA( Mobile Service Architecture) 目前有兩個版本MSA(JSR248)和MSA2(JSR249). 2004年7月JSR248和JSR249分別被JCP批準為CLDC的無線服務體系結構和CDC的無線體系結構。直到目前停留在早期的草案評估階段。MSA定義了兩個級別的架構:MSA和MSA Subset如圖1_2所示。第一章JSR238(Internationalization)JSR234(Multimedia Supplements)JSR229(Payment)JSR211(C

40、ontent Handler)JSR180(SIP)JSR179(Location)JSR177(Security and Trust)JSR172(Web services)JSR226(Vector Graphics)JSR205(Wireless Messaging)JSR184( 3D Graphics)JSR135(Mobile Media)JSR82(Blutooth) JSR75(File and PIM) JSR118(MIDP) JSR139(CLDC)JSR226(Vector Graphics)JSR205(Wireless Messaging)JSR184( 3D Graphics)JSR135(Mobile Media)JSR82(Blutooth)JSR75(File and PIM) JSR118(MIDP)JSR139(CLDC) MSAMSA Subset第一章表1_1給出了一些常用規(guī)范的名稱和功能,在以后的章節(jié)中會對他們的定義和API對詳細

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論