1. JAM JAM (Java Application Manager) 中文一般翻譯為應(yīng)用程序管理器。在有些文檔中,JAM也被叫做AMS (application manager software),這兩個(gè)術(shù)語(yǔ)所描述的概念是完全一樣的。簡(jiǎn)單來(lái)講,JAM是管理移動(dòng)設(shè)備上所有J2ME應(yīng)用程序的軟件,負(fù)責(zé)J2ME應(yīng)用程序的下載、安裝、更新與刪除。JAM由是移動(dòng)設(shè)備本身所提供的,不同公司的實(shí)現(xiàn)略有不同,初級(jí)開發(fā)人員只要知道其作用就可以了。 2. MIDlet Suite 對(duì)MIDlet Suite簡(jiǎn)單理解是MIDlet程序的一個(gè)集合。MIDlet Suite包含了一個(gè)或多個(gè)MIDlet、資源文件以及JAR manifest,這些內(nèi)容被打包成一個(gè)JAR包。通常情況上講MIDlet Suite還需要一個(gè)外部的JAD描述文件。 MIDlet Suite是為了解決多個(gè)MIDlet受控訪問(wèn)、共享資源的問(wèn)題而提出的模型。舉個(gè)共享資源的例子:在前面的章節(jié)中我們已經(jīng)介紹過(guò),RMS的共享在一般情況下是以MIDlet Suite為單位進(jìn)行的,即同一個(gè)MIDlet Suite中的MIDlet可以安全的共享所在MIDlet Suite中的RMS。因此,當(dāng)多個(gè)MIDlet要共享RMS時(shí),就可以將它們放進(jìn)一個(gè)MIDlet Suite中。為了保證安全性,MIDlet Suite中的MIDlet、資源文件都不能獨(dú)立安裝、刪除或更新。即MIDlet Suite必須作為一個(gè)整體包來(lái)對(duì)其操作。對(duì)于設(shè)備來(lái)講MIDlet Suite是一個(gè)基本單位。 3. JAR manifest AR文件就是經(jīng)打包后的可執(zhí)行文件,包括下面各種元素: 1) 實(shí)現(xiàn)MIDlet的類文件; 2) MIDlet中用到的任何資源文件(包括圖像、聲音文件等); 3) 關(guān)于JAR內(nèi)容的一份JAR manifest描述。 根據(jù)MIDP規(guī)范的規(guī)定,每個(gè)MIDlet Suite的JAR文件中必須包含一個(gè)名為mainifest.mf的文件,這個(gè)文件用于描述MIDlet Suite的各種屬性。 其中,必須包含以下屬性: 如果JAD描述文件中未提供下列屬性,則JAR manifest必須提供的屬性: 可選以下屬性: 注意:所有屬性都可以通過(guò)調(diào)用MIDlet.getAppProperty方法取得。 范例:我們假設(shè)一個(gè)名字為MyGame的MIDlet Suite,由PPJ2me公司提供,版本為1.1.1。其中包括兩個(gè)MIDlet:MyGame01,MyGame02。那么對(duì)應(yīng)mainifest.mf文件可能是這樣的: mainifest.mf MIDlet-Name: MyGame MIDlet-Version: 1.1.1 MIDlet-Vendor: PPJ2me MIDlet-1: MyGame01, /MyGame01.png, com.PPJ2me.MyGame01 MIDlet-2: MyGame02, /MyGame02.png, com.PPJ2me.MyGame02 MicroEdition-Profile: MIDP-2.0 MicroEdition-Configuration: CLDC-1.1 4. JAD描述文件 下面談?wù)凧AD描述文件,雖然某些設(shè)備上,JAM并不一定要求有JAD描述文件。尤其在MIDP1.0時(shí),JAD描述文件似乎用處不大。但在MIDP2.0中,JAD描述文件涉及了許多安全方面問(wèn)題,顯得尤為重要。一般而言,在下載JAR文件前,會(huì)先下載JAD描述文件,以讓設(shè)備了解該MIDlet Suite是否適合自己。避免直接下載JAR文件導(dǎo)致大量的成本消耗。這也是設(shè)計(jì)JAD描述文件的初衷之一。另一個(gè)目的就是提供在不更改JAR的前提下修改某些屬性值的能力。 JAD描述文件為純文本文件,文件擴(kuò)展名為.jad。JAD描述文件和JAR manifest有很多相似的地方,所以部分說(shuō)明請(qǐng)參見(jiàn)上一節(jié)。 如果有JAD描述文件,則JAD描述文件必須提供如下屬性: 如果JAR manifest未提供下列屬性,JAD描述文件中則必須提供: 可選以下屬性: 對(duì)應(yīng)用程序自己的屬性的說(shuō)明 應(yīng)用程序可以利用jad來(lái)記錄自己的專用屬性,只要不以“MIDlet-”或“MicroEdition-”開頭。這往往非常流行。因?yàn)橐坏┐虬?jar,就不方便對(duì)其進(jìn)行修改。而jad是文本文件,方便修改。因此這些屬性常用來(lái)記錄和設(shè)備相關(guān)的信息或者是網(wǎng)絡(luò)地址等。這在移植程序時(shí),減輕了很大的工作量。所有屬性都可以通過(guò)調(diào)用MIDlet.getAppProperty方法取得。 范例:我們假設(shè)一個(gè)名字為MyGame的MIDlet Suite,由PPJ2me公司提供,版本為1.1.1。其中包括兩個(gè)MIDlet:MyGame01,MyGame02。那么其對(duì)應(yīng)的JAD描述文件可能是這樣的: MyGame.jad MIDlet-Name: MyGame MIDlet-Version: 1.1.1 MIDlet-Vendor: PPJ2me MIDlet-1: MyGame01, /MyGame01.png, com.PPJ2me.MyGame01 MIDlet-2: MyGame02, /MyGame02.png, com.PPJ2me.MyGame02 MicroEdition-Profile: MIDP-2.0 MicroEdition-Configuration: CLDC-1.1 MIDlet-Description: That our sample game. MIDlet-Jar-URL: http://www.ppj2me.com/game/MyGame.jar MIDlet-Jar-Size: 7378 MIDlet-Data-Size: 256 5. JAD 描述文件與JAR manifest的關(guān)系 前面介紹JAD描述文件的時(shí)候已經(jīng)介紹了:為什么有了JAR manifest的同時(shí)還要有JAD描述文件存在的原因。那么這兩者之間還有什么必然的聯(lián)系嗎? JAD描述文件和JAR manifest中都包括了三個(gè)相同的必備屬性: 屬性名: * MIDlet-Name * MIDlet-Version * MIDlet-Vendor 出于安全性考慮,MIDP規(guī)范規(guī)定,如果JAD描述文件及JAR manifest中這三個(gè)必備屬性有任何不同的話,JAM是不會(huì)安裝該MIDlet Suite的。 在調(diào)用MIDlet.getAppProperty的時(shí)候:對(duì)于不可信任的MIDlet Suite,JAD描述文件的屬性會(huì)覆蓋JAR manifest中的屬性。對(duì)于可信任的MIDlet Suite,兩者必須相同。 |