Java技術(shù)在嵌入式系統(tǒng)中的應(yīng)用
的SIM卡開放平臺(tái)成為必要。ETSI已在其協(xié)議中增加了有關(guān)Java Card的內(nèi)容。GSM SIM卡采用Java Card API在保證安全的同時(shí)提供開放的SIM開發(fā),使得STK應(yīng)用在不同制造商的SIM卡上運(yùn)行。在開發(fā)過程中,軟件開發(fā)商可采用開放的開發(fā)工具,開發(fā)出與Java兼容的SIM卡應(yīng)用程序。 ETSI的協(xié)議GSM 03.19是STK Java卡的技術(shù)標(biāo)準(zhǔn),規(guī)定了STK Java卡的體系結(jié)構(gòu)。最底層是JCRE和GSM文件系統(tǒng)。之上是GSM框架,提供了一些供Applet接入GSM文件系統(tǒng)的API。在GSM框架之上是SIM Toolkit框架,負(fù)責(zé)Applet的觸發(fā)、注冊(cè)、安裝和卸載,主動(dòng)式命令的處理,Applet的安全性管理。 3 J2ME (1)J2ME簡介 J2ME是Sun公司為資源有限的設(shè)備上使用Java編程語言而設(shè)計(jì)的,使用在各種各樣的消費(fèi)電子產(chǎn)品上,例如智能卡、手機(jī)、PDA、電視機(jī)頂盒等。J2ME平臺(tái)是建立在Java編程語言上的,可為資源有限的設(shè)備提供******的功能。 J2ME目前有兩種配置層。一種是"面向連接的設(shè)備配置"CDC(Connected Device Configuration),它采用典型的Java虛擬機(jī)技術(shù)。這種全功能的虛擬機(jī)包含了基于臺(tái)式機(jī)系統(tǒng)上的虛擬機(jī)的所有功能,適用于擁有至少幾兆字節(jié)內(nèi)存的設(shè)備。它的目標(biāo)是高檔的消費(fèi)類電子產(chǎn)品和嵌入式設(shè)備,例如智能通信器、高級(jí)"智能"尋呼機(jī)、智能個(gè)人數(shù)字助理(PDA)以及交互式數(shù)字電視機(jī)頂盒。對(duì)于無線設(shè)備和其它內(nèi)存不足的設(shè)備,J2ME采用"面向連接的受限的設(shè)備配置"CLDC(Connected Limited Device Configuration)技術(shù)。 (2)J2ME對(duì)硬件的最低要求 CDC與CLDC對(duì)硬件平臺(tái)有不同的要求: CDC-32位的微處理器,大于2MB的存儲(chǔ)器。 CLDC-16位或32位處理器,大于128KB的存儲(chǔ)器。 (3)J2ME軟件體系結(jié)構(gòu) Java Virtual Machine Layer(Java虛擬機(jī)層)是Java虛擬機(jī)的一個(gè)實(shí)現(xiàn),它是為特定設(shè)備的主機(jī)操作系統(tǒng)定制的,而且支持一個(gè)特定的J2ME配備。CDC配置的JVM是CVM(C虛擬機(jī)),CLDC配置的JVM是KVM(K虛擬機(jī))。 Configuration Layer(配置層)定義了Java 虛擬機(jī)功能和特定類別設(shè)備上可用的Java類庫的最小集。從某種程序上說,一個(gè)配置定義了Java平臺(tái)功能部件和庫的共同性,開發(fā)者可以假設(shè)這些功能部件和庫在屬于某一特定類別的所有設(shè)備上都是可用的。 Profile Layer(框架層)定義了特定系列設(shè)備上可用的應(yīng)用程序編程接口的最小集。框架在一個(gè)特定的配置上面實(shí)現(xiàn),在配置層上增加適用特定規(guī)格的配置文件,如MIDP就是用于移動(dòng)終端的配置文件。應(yīng)用程序是針對(duì)特定的框架編寫的,因此可以移植到支持該框架的任何設(shè)備上,一個(gè)設(shè)備可以支持多個(gè)框架。 (4)J2ME API CDC提供支持全兼容Java 2虛擬機(jī)所必需的最小API集。這一API集包括所有為CDC定義的API和針對(duì)文件I/O、網(wǎng)絡(luò)連接、高級(jí)完全性、對(duì)象序列等API。其中Java.io支持系統(tǒng)輸入與輸出,Java lang Java提供編程語言基本類,Java.lang.ref包括了一些特別參考類,Java.lang.reflect提供對(duì)反映的支持,Java.math支持?jǐn)?shù)學(xué)運(yùn)算,Java.net提供用于網(wǎng)絡(luò)連接的類和工具,Java.security提供完全支持,Java.security.cert提供證書支持,Java.text提供文本處理類,Java.util包括集合、日期和時(shí)間支持等各種實(shí)用工具類,Java.util.jar提供Jar文件支持,Java.util.zip提供Zip文件支持,支持Javax.microedition類屬連接。 由于MIDP/CLDC API將在一個(gè)性能有限的設(shè)備上運(yùn)行,因此Java的一些功能被取消或修改。Java.lang、Java.io、Java.util包是J2SE包中標(biāo)準(zhǔn)類的一個(gè)子集。Javax.microedition.io包提供了對(duì)網(wǎng)絡(luò)連接的支持,Javax.microedition.io包中的主要對(duì)象是Connector類??蓪⒃擃悘?qiáng)制轉(zhuǎn)換為不同的連接類型,例如HttpConnection。Javax.microedition.lcdui提供了用于定義midlet用戶接口的類。Javax.microedition.rms包用來在設(shè)備上實(shí)現(xiàn)一個(gè)臨時(shí)存儲(chǔ)數(shù)據(jù)庫,當(dāng)然該數(shù)據(jù)庫的存儲(chǔ)和獲取信息的性能受到設(shè)備的限制。Javax.microedition.midlet中包含有MIDlet的類。MIDlet類執(zhí)行midlet的生命周期,并且提供getAppProperty(key)方法來由應(yīng)用屬性中獲取信息。應(yīng)用屬性設(shè)置在jad(Java應(yīng)用程序描述器)文件中。 (5)Java卡在移動(dòng)通信領(lǐng)域的應(yīng)用 CLDC和MIDP為創(chuàng)建移動(dòng)電話應(yīng)用程序提供了完整的環(huán)境。MID框架的核心是一個(gè)MIDlet應(yīng)用程序,所有應(yīng)用程序MIDlet都繼承MIMlet類,以允許應(yīng)用程序管理軟件對(duì)MIDlet進(jìn)行控制、從應(yīng)用程序描述符檢索屬性以及對(duì)狀態(tài)變化進(jìn)行通知和請(qǐng)示。MIDlet類提供了用于調(diào)用、暫停、重新啟動(dòng)和終止MIDlet應(yīng)用程序的API。應(yīng)用程序管理軟件可以在運(yùn)行時(shí)環(huán)境內(nèi)管理多個(gè)MIDlet的活動(dòng)。此外,MIDlet可以自己發(fā)起一些狀態(tài)變化,并把這些變化通知給應(yīng)用程序管理軟件。 移動(dòng)電話J2ME MIDP應(yīng)用程序包括用戶界面開發(fā)、數(shù)據(jù)庫程序開發(fā)和網(wǎng)絡(luò)程序開發(fā)。 Javax.microedition.lcdui包中包括了用于用戶界面開發(fā)的各種類。用戶界面的根類是Display,所有的用戶界面類都是在Display里顯示出來的Displayable對(duì)象,Display對(duì)象是其它對(duì)象演示的舞臺(tái),應(yīng)用程序道德需要獲得Display對(duì)象的引用,然后就可以把場(chǎng)景對(duì)象放入演示舞臺(tái)中。MIDP提供了Screen和Canvas兩種演示場(chǎng)景。Screen的子類包括Alert、Form、List和TextBox。Javax.microedition.lcdui中定義了Command類來接收用戶的輸入信息,又在Display類中定義了Screen對(duì)象與Command對(duì)象組合的方法,使得應(yīng)用程序能夠響應(yīng)用戶的輸入。 在Screen場(chǎng)景中可以使用的對(duì)象包括Alert(信息窗口)、Form(窗體)、List(選項(xiàng)列表)和TextBox(文本框)。其中Form可以放置Item類,包括TextFiled(文本字段)、StringItem(字符串項(xiàng)目)、ImageItem(圖像項(xiàng)目)、DataField(日期字段)、ChoiceGroup(選項(xiàng)集合)和Gauge(標(biāo)尺)。TextBox使應(yīng)用程序能夠在屏幕上顯示文本框;Alert類似于消息框,可以為用戶提供一些信息;List類以列表的形式提供選項(xiàng)使用戶選擇;Form是一個(gè)容器對(duì)象,可以放置包括文本字段、字符串項(xiàng)目、圖像項(xiàng)目、日期字段、選項(xiàng)集合和標(biāo)尺等在內(nèi)的Item對(duì)象。 Canvas是Displayable中用來給開發(fā)者創(chuàng)建整個(gè)用戶接口的,用于創(chuàng)建復(fù)雜的用戶界面,例如視頻游戲中使用的界面。用戶在Canvas對(duì)象上的繪畫與Applet中的AWT Canvas類似。 Javax.microedition.rms定義了在設(shè)備上實(shí)現(xiàn)一個(gè)臨時(shí)存儲(chǔ)數(shù)據(jù)庫程序開發(fā)的類。其中采用由字節(jié)數(shù)組RMS(記錄管理系統(tǒng))機(jī)制,使用稱為RecordStore(記錄存儲(chǔ)區(qū))的小型數(shù)據(jù)庫。每個(gè)記錄存儲(chǔ)區(qū)對(duì)象是Javax.microedition.rms類的一個(gè)實(shí)例。記錄存儲(chǔ)區(qū)是由字節(jié)數(shù)組組成的記錄構(gòu)成的。RecordStore提供了用于用戶操作記錄和管理存儲(chǔ)區(qū)的方法,對(duì)記錄的操作包括增加、刪除、更新和查詢。 Javax.microedition.io為應(yīng)用程序開發(fā)者提供GCF(通用聯(lián)機(jī)框架),用于網(wǎng)絡(luò)編程。網(wǎng)絡(luò)編程的根類是Connecter,通過Connecter提供了HTTP、SOCKET、Datagram(數(shù)據(jù)報(bào))和Serial Port(串行口)等網(wǎng)絡(luò)通信方式,其中HTTP為設(shè)備的必選項(xiàng)。 (6)J2ME MIDP應(yīng)用程序的開發(fā)過程 Sun公司最近推出的工具包J2ME WTK(Java 2 Micro Edition Wireless Toolkit)簡化了MIDlet的開發(fā),為MIDlet開發(fā)提供了一個(gè)全面的工具包。應(yīng)用程序的開發(fā)過程如下: ①安裝J2SE或者Java Runtime Enviroment。 ②安裝J2ME WTK。 ③配置仿真器。 ④編輯Java源文件,可以使用任何Java代碼編輯工具。 ⑤編譯Java源代碼,用Java編譯器編譯Java源代碼,生成Class文件。除了編譯以外,編譯器還會(huì)檢查源文件中有沒有使用CLDC和MIDP以外的類和屬性及方法。 ⑥驗(yàn)證字節(jié)碼。 ⑦封裝成MIDlet Suite,把經(jīng)過驗(yàn)證的Class文件及應(yīng)用程序中將用到的資源文件封裝成JAR文件,這一步會(huì)生成JAD文件和mainfest文件。 ⑧測(cè)試,然后下載到目標(biāo)機(jī)上運(yùn)行。 結(jié) 語 Java本來就是為嵌入式設(shè)備而設(shè)計(jì)的,但昌隨著因特網(wǎng)的興起,Java在臺(tái)式機(jī)和服務(wù)器端的應(yīng)用開發(fā)中取得了巨大的成功。Java在應(yīng)用中充分展示其通用性與完全性等優(yōu)勢(shì),而這在嵌入式設(shè)備的應(yīng)用開發(fā)中是至關(guān)重要的,這使得Java重返嵌入式應(yīng)用開發(fā)領(lǐng)域成為必然。STK Java卡和J2ME的成功應(yīng)用昭示著Java在嵌入式系統(tǒng)應(yīng)用開發(fā)中的美好前景。 |