手機開發JavaME MIDlet Suites簡介
發布時間:2010-10-10 21:12
發布者:eetech
1. JAM JAM (Java Application Manager) 中文一般翻譯為應用程序管理器。在有些文檔中,JAM也被叫做AMS (application manager software),這兩個術語所描述的概念是完全一樣的。簡單來講,JAM是管理移動設備上所有J2ME應用程序的軟件,負責J2ME應用程序的下載、安裝、更新與刪除。JAM由是移動設備本身所提供的,不同公司的實現略有不同,初級開發人員只要知道其作用就可以了。 2. MIDlet Suite 對MIDlet Suite簡單理解是MIDlet程序的一個集合。MIDlet Suite包含了一個或多個MIDlet、資源文件以及JAR manifest,這些內容被打包成一個JAR包。通常情況上講MIDlet Suite還需要一個外部的JAD描述文件。 MIDlet Suite是為了解決多個MIDlet受控訪問、共享資源的問題而提出的模型。舉個共享資源的例子:在前面的章節中我們已經介紹過,RMS的共享在一般情況下是以MIDlet Suite為單位進行的,即同一個MIDlet Suite中的MIDlet可以安全的共享所在MIDlet Suite中的RMS。因此,當多個MIDlet要共享RMS時,就可以將它們放進一個MIDlet Suite中。為了保證安全性,MIDlet Suite中的MIDlet、資源文件都不能獨立安裝、刪除或更新。即MIDlet Suite必須作為一個整體包來對其操作。對于設備來講MIDlet Suite是一個基本單位。 3. JAR manifest AR文件就是經打包后的可執行文件,包括下面各種元素: 1) 實現MIDlet的類文件; 2) MIDlet中用到的任何資源文件(包括圖像、聲音文件等); 3) 關于JAR內容的一份JAR manifest描述。 根據MIDP規范的規定,每個MIDlet Suite的JAR文件中必須包含一個名為mainifest.mf的文件,這個文件用于描述MIDlet Suite的各種屬性。 其中,必須包含以下屬性: 如果JAD描述文件中未提供下列屬性,則JAR manifest必須提供的屬性: 可選以下屬性: 注意:所有屬性都可以通過調用MIDlet.getAppProperty方法取得。 范例:我們假設一個名字為MyGame的MIDlet Suite,由PPJ2me公司提供,版本為1.1.1。其中包括兩個MIDlet:MyGame01,MyGame02。那么對應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描述文件 下面談談JAD描述文件,雖然某些設備上,JAM并不一定要求有JAD描述文件。尤其在MIDP1.0時,JAD描述文件似乎用處不大。但在MIDP2.0中,JAD描述文件涉及了許多安全方面問題,顯得尤為重要。一般而言,在下載JAR文件前,會先下載JAD描述文件,以讓設備了解該MIDlet Suite是否適合自己。避免直接下載JAR文件導致大量的成本消耗。這也是設計JAD描述文件的初衷之一。另一個目的就是提供在不更改JAR的前提下修改某些屬性值的能力。 JAD描述文件為純文本文件,文件擴展名為.jad。JAD描述文件和JAR manifest有很多相似的地方,所以部分說明請參見上一節。 如果有JAD描述文件,則JAD描述文件必須提供如下屬性: 如果JAR manifest未提供下列屬性,JAD描述文件中則必須提供: 可選以下屬性: 對應用程序自己的屬性的說明 應用程序可以利用jad來記錄自己的專用屬性,只要不以“MIDlet-”或“MicroEdition-”開頭。這往往非常流行。因為一旦打包成 jar,就不方便對其進行修改。而jad是文本文件,方便修改。因此這些屬性常用來記錄和設備相關的信息或者是網絡地址等。這在移植程序時,減輕了很大的工作量。所有屬性都可以通過調用MIDlet.getAppProperty方法取得。 范例:我們假設一個名字為MyGame的MIDlet Suite,由PPJ2me公司提供,版本為1.1.1。其中包括兩個MIDlet:MyGame01,MyGame02。那么其對應的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的關系 前面介紹JAD描述文件的時候已經介紹了:為什么有了JAR manifest的同時還要有JAD描述文件存在的原因。那么這兩者之間還有什么必然的聯系嗎? JAD描述文件和JAR manifest中都包括了三個相同的必備屬性: 屬性名: * MIDlet-Name * MIDlet-Version * MIDlet-Vendor 出于安全性考慮,MIDP規范規定,如果JAD描述文件及JAR manifest中這三個必備屬性有任何不同的話,JAM是不會安裝該MIDlet Suite的。 在調用MIDlet.getAppProperty的時候:對于不可信任的MIDlet Suite,JAD描述文件的屬性會覆蓋JAR manifest中的屬性。對于可信任的MIDlet Suite,兩者必須相同。 |
網友評論