- J2ME手機(jī)游戲設(shè)計(jì)與開發(fā)
- 劉暢 張旭輝編著
- 920字
- 2019-01-01 07:08:48
2.1 建立J2ME項(xiàng)目
2.1.1 創(chuàng)建MIDlet套件
MIDlet應(yīng)用模型的一個(gè)核心目標(biāo)就是,盡可能地使多個(gè)可以同時(shí)運(yùn)行的MIDlet之間共享數(shù)據(jù)和資源。為了完成這樣的目標(biāo),MIDP規(guī)范要求:需要共享數(shù)據(jù)和交互的MIDlet必須放在同一個(gè)JAR文件里面。這個(gè)封裝起來的MIDlet集合就被稱為MIDlet套件(MIDlet Suite)。
每個(gè)MIDlet套件都至少要有一個(gè)擴(kuò)展了MIDlet類的主類。JAR清單文件標(biāo)志了套件中的每個(gè)MIDlet及它們的名稱和圖標(biāo)。MIDlet是由應(yīng)用管理軟件所啟動(dòng)的實(shí)體,當(dāng)某個(gè)MIDlet套件被調(diào)用時(shí),需要Java 虛擬機(jī)的支持才能執(zhí)行相應(yīng)的類。應(yīng)用管理軟件生成這個(gè)MIDlet的一個(gè)新實(shí)例,用來引導(dǎo)這個(gè)MIDlet啟動(dòng)、暫停和銷毀。
MIDlet之間的數(shù)據(jù)和其他信息的共享由相應(yīng)的API及它們的實(shí)現(xiàn)來控制,例如記錄存儲(chǔ)系統(tǒng)(RMS)API,當(dāng)屬于某個(gè)MIDlet套件的記錄存儲(chǔ)被套件中多個(gè)MIDlet共享時(shí),就需要使用這些API。
為了保護(hù)MIDlet套件提供者的安全及實(shí)現(xiàn)數(shù)據(jù)共享,在MIDlet套件中的MIDlet、類和單獨(dú)的文件不能夠被單獨(dú)地安裝、更新或者刪除,它們必須強(qiáng)制成為一體。換句話說,在MIDP中,安裝、更新和刪除的基本單元就是MIDlet套件。
使用新建項(xiàng)目向?qū)?,選擇J2ME中的“J2ME Midlet Suite”命令來創(chuàng)建一個(gè)EclipseME項(xiàng)目,如圖2-1所示。
向?qū)У牡谝粋€(gè)界面和標(biāo)準(zhǔn)Java項(xiàng)目一致,設(shè)置項(xiàng)目的名字,以及項(xiàng)目的存儲(chǔ)位置,如圖2-2所示。
這里的項(xiàng)目在操作系統(tǒng)下的表現(xiàn)就是一個(gè)文件夾,所以命名時(shí)可以采用英文也可以使用數(shù)字等其他字符,但是要注意在同一個(gè)命名空間中不可以有同名的項(xiàng)目,這點(diǎn)與文件夾的建立相似。

圖2-1 建立MIDlet套件

圖2-2 “New J2ME Project”設(shè)置向?qū)?/p>
在第2個(gè)界面里,從可用的設(shè)備定義中選擇一個(gè)模擬器,用于編譯、運(yùn)行和調(diào)試項(xiàng)目。若有必要,以后可以在項(xiàng)目屬性中改變這個(gè)設(shè)定。另外,在這個(gè)界面中,也可以改變項(xiàng)目的JAD文件的默認(rèn)位置,JAD文件必須相對(duì)于項(xiàng)目的根目錄來創(chuàng)建。創(chuàng)建項(xiàng)目之后也可以在包資源管理器中使用重構(gòu)(重命名或移動(dòng))來修改JAD文件位置,如圖2-3所示。
最后的界面可以調(diào)整源文件設(shè)置,相關(guān)的項(xiàng)目和庫(kù)等,如圖2-4所示。這是Eclipse的標(biāo)準(zhǔn)設(shè)置界面。如果項(xiàng)目需要外部的類庫(kù),只要把相應(yīng)的JAR文件添加到“庫(kù)”這個(gè)面板的列表中就可以了。EclipseME會(huì)自動(dòng)把這些JAR文件和class文件一起進(jìn)行管理。

圖2-3 模擬器選擇

圖2-4 源文件設(shè)置
完成了上面的步驟之后,在工作空間里就可以看到下面如圖2-5所示的一個(gè)項(xiàng)目。

圖2-5 項(xiàng)目文件夾
2.1.2 MIDlet套件項(xiàng)目文件介紹
MIDlet套件簡(jiǎn)單理解就是MIDlet程序的一個(gè)集合。它包含了一個(gè)或多個(gè)MIDlet、資源文件及JAR manifest文件。在EclipseME里面創(chuàng)建了一個(gè)MIDlet套件其實(shí)就是相當(dāng)于創(chuàng)建了一個(gè)Java Project一樣。
MIDlet套件是一個(gè)MIDlet中所有的文件及作為 MIDlet一部分的必需的資源的集合。MIDlet套件由以下幾部分組成:
·附在JAR文件中的Java類文件;
·描述JAR文件內(nèi)容的清單文件(mainifest.mf);
·附在JAR文件中的資源(如圖像)和Java應(yīng)用程序描述器文件(JAD);
·應(yīng)用程序管理器。
1.mainifest.mf清單文件
根據(jù)MIDP規(guī)范的規(guī)定,每個(gè)套件的JAR文件中必須包含一個(gè)名為mainifest.mf的文件。這個(gè)其實(shí)就是Java里面的.mf文件了。它包含了一些屬性,如表2-1所示。
表2-1 mainifest文件內(nèi)容屬性
表2-1中這些屬性并不是全部都需要的,可是如果沒有列出下面6個(gè)屬性值,應(yīng)用程序管理器就會(huì)拒絕加載這個(gè)JAR。
MIDlet-Name MIDlet-Version MIDlet-Vendor MIDlet-(序號(hào)) MicroEdition-Profile MicroEdition-Configuration
下面是一個(gè)簡(jiǎn)單的屬性清單文件的例子:
MIDlet-Name:KOF2001 MIDlet-Version:1.0 MIDlet-Vendor:NeoRage Corporation Inc. MIDlet-1:kof,/images/kof.png,kof.kofMIDlet MicroEdition-Profile:MIDP-1.0 MicroEdition-Configuration:CLDC-1.0
2.Java應(yīng)用程序描述器文件(JAD)
在有些設(shè)備上面并不一定要求JAM(應(yīng)用程序管理器)上面要有JAD描述器文件。在MIDP 2.0中JAD描述器文件涉及了許多安全方面的問題,所以就顯得非常重要了。一般在下載JAR文件前會(huì)先下載JAD描述器文件,為的是讓設(shè)備了解這個(gè)套件是否適合自己。
雖然沒有必要,仍然可以在JAR文件中包含一個(gè)JAD文件,就像清單文件一樣,這個(gè)文件中也包含MIDlet的信息。創(chuàng)建一個(gè)JAD文件是基于以下兩個(gè)原因的。
(1)向應(yīng)用程序管理器提供信息,說明JAR文件的內(nèi)容,使用這些信息,就可以判斷一個(gè)MIDlet是否適合運(yùn)行在這個(gè)設(shè)備上。例如,通過查看屬性MIDlet-Data-Size,應(yīng)用程序管理器可以確定MIDlet是否需要此設(shè)備可以提供的更多的內(nèi)存。
(2)提供一種方法,可以把參數(shù)傳送到MIDlet而不必更改JAR文件。
和清單文件一樣,某些屬性必須被定義,如果這些屬性不可用,則應(yīng)用程序管理器將不加載這個(gè)MIDlet,它們是:
MIDlet-Name MIDlet-Version MIDlet-Vendor MIDlet-(序號(hào)) MIDlet-Jar-URL MIDlet-Jar-Size
MIDlet-Name、MIDlet-Version和MIDlet-Vendor的值必須與JAR中的清單文件中相同的屬性的值一致。如果在這兩個(gè)文件有什么不同,申請(qǐng)管理器不會(huì)加載這個(gè)JAR。
除了這些屬性以外,如果兩個(gè)文件中的另外名稱具有相同的屬性,但是屬性值不相同的,將優(yōu)先采取應(yīng)用程序描述器文件(JAD)屬性。
MIDP 1.0規(guī)范沒有規(guī)定MIDlet-n屬性是JAD文件的必需屬性??墒牵瑳]有這個(gè)屬性,就沒有辦法在設(shè)備模擬器中預(yù)覽MIDlet。因此,出于完整性考慮,應(yīng)該在JAD文件中包含MIDlet-n屬性。
下面是一個(gè)非常簡(jiǎn)單的例子:
MIDlet-Name:Note Pad MIDlet-Version:1.0 MIDlet-Vendor:ABC WorkGroup. MIDlet-Jar-URL:http://www.abcworkgroup.com/MIDlets/notepad.jar MIDlet-Jar-Size:26248 MIDlet-1:NotePad,/images/NotePad.png,NotePad.Main
- 現(xiàn)代測(cè)控電子技術(shù)
- Splunk 7 Essentials(Third Edition)
- Hands-On Machine Learning on Google Cloud Platform
- Dreamweaver CS3網(wǎng)頁(yè)設(shè)計(jì)與網(wǎng)站建設(shè)詳解
- VMware Performance and Capacity Management(Second Edition)
- Hadoop Real-World Solutions Cookbook(Second Edition)
- 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)基礎(chǔ)
- OpenStack Cloud Computing Cookbook(Second Edition)
- 統(tǒng)計(jì)學(xué)習(xí)理論與方法:R語(yǔ)言版
- Linux服務(wù)與安全管理
- Machine Learning with the Elastic Stack
- 液壓機(jī)智能故障診斷方法集成技術(shù)
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)實(shí)訓(xùn)(職業(yè)模塊)
- 中老年人學(xué)電腦與上網(wǎng)
- Getting Started with Tableau 2018.x