亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

開發過程中生成MIDlet套件漫談

2019-11-18 12:46:26
字體:
來源:轉載
供稿:網友

  一、MIDlet Suite
  
  雖然把MIDlet封裝進 java檔案文件(JAR)并不一定必要,但這是發布 J2ME/MIDP應用程序最常見的方法。MIDlet套件是一個MIDlet中所有的文件以及作為 MIDlet一部分的必需的資源的集合。MIDlet套件由以下幾部分組成:
  
  1、附在JAR文件中的 Java類文件,
  
  2、描述 JAR文件內容的清單文件(MANIFEST.MF)
  
  3、附在 JAR文件中的資源(如圖象)和Java應用程序描述符文件(JAD)
  
  4、應用程序治理器
  
  應用程序治理器是一個移動設備上的軟件程序,這個應用程序與具體的設備有關,并且由設備的生產商實現。它負責安裝、運行以及從設備上刪除 MIDlet,而提供錯誤處理支持。這個應用程序治理器同時還提供一個可選界面,答應用戶啟動、終止以及刪除 MIDlet。
  
  二、Jar文件
  
  一個商品化的、封裝過應用程序通常由許多文件構成。除了 Java類以外,其他文件諸如圖像和應用程序數據即通常所說的資源,也可能是這個程序包的一部分。你把所有這些信息捆綁進一個整體,就稱為 JAR文件。
  
  除了類和資源文件,一個 JAR文件還包括描述 JAR內容的清單文件。清單文件名為 manifest.mf,儲存在 JAR文件本身中,下面這張表中列出定義在這個清單文件中的所有可用的屬性。
  
  表 1
  
  屬性            用途
  MIDlet-Name MIDlet程序包的名稱。例如“Game Pack”MIDlet-Version MIDlet的版本號
  MIDlet-Vendor MIDlet的創建者或提供商
  MIDlet-Icon 應用程序治理器把這個圖標與 MIDlet-Name相關聯,這是一個圖形文件,以 PNG圖象格式儲存。
  MIDlet-Description 描述 MIDlet的文本MIDlet-Info-URL 可能提供更多MIDlet和/或供給商信息的 URL
  注重:下面的“MIDlet-x”屬性可以使用多次來聲明jar文件中的多個MIDlet。
  其中x為MIDlet的編號。
  “MIDlet-x”屬性包括三段信息: MIDlet名稱, 用于這個 MIDlet的圖標(可選), 應用程序治理器將調用來加載這個 MIDlet的類名。
  在我們的“ Game Pack”例子中,有兩個條目: MIDlet-1: KOF, /images/kof.png, kof.kofMIDlet MIDlet-2: Golf, /images/golf.png, golfMIDletMIDlet-Jar-URL JAR文件的 URLMIDlet-Jar-Size JAR文件的大小
  MIDlet-Data-Size 持久數據存儲必需的最小字節數
  MicroEdition-PRofile MIDlet需要哪一種 J2ME簡表
  MicroEdition-Configuration MIDlet需要哪一種 J2ME配置
  
  這些屬性并不是全部都需要,可是,沒有下面列出的這六個,應用程序治理器就會拒絕加載這個 JAR。
  
  MIDlet-Name
  MIDlet-Version
  MIDlet-Vendor
  MIDlet-
  MicroEdition-Profile
  MicroEdition-Configuration
  
  這里有一個簡單的清單文件的例子:
  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
  
  三、Java應用程序描述器文件(JAD)
  
  雖然沒有必要,你仍然可以在 JAR文件中包含一個 JAD文件,就像清單文件一樣,這個文件也包含 MIDlet的信息。創建一個 JAD文件是基于兩個原因。
  
  1、向應用程序治理器提供信息,說明 JAR文件的內容,使用這些信息,就可以判定一個 MIDlet是否適合運行在這個設備上。例如,通過查看屬性 MIDlet-Data-Size,應用程序治理器可以確定 MIDlet是否需要比設備可以提供的更多的內存。
  
  2、提供一種方法,可以把參數傳送到 MIDlet而不必更改 JAR文件,在本文的后半段我們將看一個這樣的例子。
  
  JAD文件使用表 1中相同的屬性。假如你需要創建你自己的屬性,也可以辦得到,只要使用不以 MIDlet為開頭的屬性名就可以了,下面的 showProperties.jad文件就是自定義屬性的例子。和清單文件一樣,有某些屬性必須被定義,假如這些屬性不可用的話,應用程序治理器將不加載這個 MIDlet,它們是:
  
  MIDlet-Name
  MIDlet-Version
  MIDlet-Vendor
  MIDlet-
  MIDlet-Jar-URL
  MIDlet-Jar-Size
  
  MIDlet-Name、MIDlet-Version和MIDlet-Vendor的值必須與 JAR中的清單文件中相同的屬性的值一致。可能看出,假如在這兩個文件有什么不同的話,申請治理器不也會加載這個 JAR。
  
  除了這些屬性以外,假如兩個文件中的另外名稱相同的屬性,但是屬性值不相同的,將優先采取應用程序描述器文件 ( JAD )屬性。
  
  MIDP 1.0規范沒有規定 MIDlet-n屬性是 JAD文件的必需屬性。可是,沒有這個屬性,就沒有辦法在設備模擬器中預覽 MIDlet。在兩個文件中包含這個屬性沒有問題,并且事實上,那么做可以更清楚看出這些文件是怎樣關聯的。因此,出于完整性考慮,這里的所有離子都將在JAD文件中包含MIDlet-n屬性。因此,出于完整性考慮,這里的全部例子都將在 JAD文件中包含 MIDlet-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
  
  四、從MIDlet中訪問 JAR/JAD屬性
  
  一個MIDlet程序可以訪問所有的定義在清單文件(在JAR文件中)和JAD文件的屬性。返回屬性信息的方法及所在的完整的程序包名是 javax.microedition.midlet.MIDlet.getAppProperty(String name)
  
  下面是一個例子,從jar/jad文件中讀出并打印屬性值。
  
  showProperties.jar中的 manifest.mf文件的內容如下:
  MIDlet-Name: Show Properties
  MIDletMIDlet-Version: 1.0.1MIDlet-Vendor: ABC WorkGroup.MIDlet-1: ShowProps, , showPropertiesMicroEdition-Profile: MIDP-1.0MicroEdition-Configuration: CLDC-1.0MIDlet-Description: A simple property list exampleMIDlet-Data-Size: 1500
  
  showProperties.jad的內容:
  MIDlet-Name: Show Properties MIDletMIDlet-Version: 1.0.1MIDlet-Vendor: ABC WorkGroup.MIDlet-Jar-URL: file://showProperties.jarMIDlet-Jar-Size: 1132MIDlet-1: ShowProps, , showPropertiesJadFile-Version: 1.5MIDlet-Data-Size: 500
  
  showProperties.java的源程序:
  import javax.microedition.midlet.*;
  public class showProperties extends MIDlet{ public void startApp() throws MIDletStateChangeException{
  System.out.println("Vendor: " + getAppProperty("MIDlet-Vendor"));
  System.out.println("Description: " + getAppProperty("MIDlet-Description"));
  System.out.println("JadFile Version: " + getAppProperty("JadFile-Version"));
  System.out.println("MIDlet-Data-Size: " + getAppProperty("MIDlet-Data-Size"));
  };
  public void pauseApp(){ };
  public void destroyApp(boolean unconditional){ };
  }
  
  下面這些是一些比較重要的地方:
  
  manifest.mf文件作為 JAR文件 showProperties.jar的一部分儲存的。
  
  JAD文件showProperties.jad使用MIDlet-Jar-URL: file://showProperties.jar 引用showProperties.jar。
  
  當你瀏覽這個 JAD文件的時候,它使用上面那個命令找出相關聯的 JAR文件并讀取清單文件的內容。
  
  屬性MIDlet-Name、MIDlet-Version和MIDlet-Vendor 既在 JAR中的清單文件中又在 JAD文件中,這些屬性的值都必須完全相同。
  
  MIDlet-Description屬性來自清單文件,是可選的。
  
  JadFile Version屬性不在表 1中,因此它是一個自定義屬性。因為 JAD文件內的屬性可從MIDlet訪問,所以你可以不用改變 JAR文件而添加屬性到 JAD中。
  
  屬性 MIDlet-Data-Size在清單文件和 JAD文件中都有,就像前面指出的那樣,當兩個文件中有完全相同的屬性時, JAD文件中的屬性將使用。切記這不適用于MIDlet-Name、MIDlet-Version和MIDlet-Vendor。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线国产精品| 欧美激情第1页| 久久亚洲精品国产亚洲老地址| 欧美在线一区二区视频| 亚洲成人av在线播放| 成人性教育视频在线观看| 中文亚洲视频在线| 欧美性在线观看| 日本高清久久天堂| 国产精品男人爽免费视频1| 久久国产精品偷| 国产精品视频最多的网站| 日本久久亚洲电影| 日韩福利视频在线观看| 久久久久久香蕉网| 亚洲国产精品免费| 国产成人精品a视频一区www| 国产精品电影网| 成人精品久久av网站| 亚洲最大的av网站| 高清欧美性猛交xxxx黑人猛交| 热门国产精品亚洲第一区在线| 亚洲性生活视频在线观看| 国产欧美精品日韩精品| 岛国av一区二区| 国产精品热视频| 亚洲人在线观看| 国产精品69精品一区二区三区| 一区二区在线免费视频| 亚洲自拍偷拍第一页| 亚州av一区二区| 精品国产电影一区| 欧美影院成年免费版| 色综合久久久888| 色老头一区二区三区在线观看| 18性欧美xxxⅹ性满足| 日韩电视剧在线观看免费网站| 亚洲精品美女在线观看| 久久国产精品影视| 亚洲aaa激情| 亚洲国产黄色片| 疯狂蹂躏欧美一区二区精品| 在线播放国产一区中文字幕剧情欧美| 日韩av网站在线| 欧美极品在线播放| 97在线视频精品| 欧美影院成年免费版| 91色中文字幕| 国产精品劲爆视频| 日韩在线一区二区三区免费视频| 日韩视频中文字幕| 久久免费少妇高潮久久精品99| 成人性生交大片免费观看嘿嘿视频| 国产精品18久久久久久麻辣| 亚洲高清免费观看高清完整版| 国产精品亚洲视频在线观看| 久久男人资源视频| 欧美激情在线播放| 亚洲a在线播放| 91精品国产91久久| 国产日韩欧美电影在线观看| 久久国产精品影视| 精品成人国产在线观看男人呻吟| 中文字幕欧美在线| 亚洲性无码av在线| 在线激情影院一区| 亚洲自拍小视频免费观看| 国产三级精品网站| 欧美黑人性生活视频| xxxx欧美18另类的高清| 国产精品久久久久aaaa九色| 国产在线不卡精品| 8x海外华人永久免费日韩内陆视频| 国产精品自拍偷拍视频| 91免费视频网站| 日韩美女视频在线观看| 成人久久一区二区三区| 成人免费观看a| 亚洲精品成a人在线观看| 欧美日韩午夜视频在线观看| 久久激情五月丁香伊人| 最好看的2019年中文视频| 欧美性理论片在线观看片免费| 精品国产乱码久久久久酒店| 国产日韩在线免费| 国产精品综合不卡av| 欧美视频不卡中文| 国产精品久久久久久久天堂| 欧美亚洲视频在线看网址| 欧美在线观看www| 欧美猛交ⅹxxx乱大交视频| 91精品在线播放| 日韩毛片在线看| 8050国产精品久久久久久| 日韩精品视频免费专区在线播放| 日韩亚洲精品电影| 性视频1819p久久| 不卡av电影在线观看| 欧美激情视频三区| 亚洲精品按摩视频| 欧美肥臀大乳一区二区免费视频| 欧美国产日韩一区二区三区| 欧美激情精品久久久久久蜜臀| 91麻豆桃色免费看| 日韩国产中文字幕| 日韩亚洲精品视频| 久久久久久久久久久免费| 亚洲高清在线观看| 久久免费观看视频| 亚洲aⅴ男人的天堂在线观看| 高潮白浆女日韩av免费看| 亚洲欧美日韩国产中文专区| 欧美另类高清videos| 国产精品电影一区| 欧美成人午夜激情视频| 亚洲欧美激情另类校园| 欧美理论电影在线观看| 久久视频在线播放| 精品高清一区二区三区| 亚洲国产福利在线| 2019国产精品自在线拍国产不卡| 91久久在线播放| 欧美黑人性猛交| 福利二区91精品bt7086| 国产精品海角社区在线观看| 久久久久久久久电影| 国产va免费精品高清在线| 国产精品大陆在线观看| 久久91亚洲精品中文字幕| 91精品久久久久久久| 成人黄色激情网| 国产日韩精品入口| 欧美日韩国产精品一区| 91免费电影网站| 成人激情视频在线观看| 中文字幕国产精品久久| 欧美亚洲另类视频| 亚洲精品久久7777777| 成人精品一区二区三区电影黑人| 亚洲午夜未满十八勿入免费观看全集| 国产午夜精品免费一区二区三区| 日韩欧美在线播放| 欧美精品成人91久久久久久久| 日韩毛片在线看| 国产精品国产自产拍高清av水多| 日韩一区二区福利| 国产亚洲成精品久久| 欧美午夜激情小视频| 色偷偷av一区二区三区乱| 亚洲高清久久网| 欧美在线影院在线视频| 中文字幕不卡av| 日本久久久a级免费| 91精品久久久久久久久久入口| 久久九九亚洲综合| 国产精品高潮在线| 中文字幕免费国产精品| 欧美老女人性视频| 亚洲毛茸茸少妇高潮呻吟| 91中文在线视频| 欧美日韩亚洲一区二| 日本午夜人人精品| 欧美综合在线第二页| 精品日韩美女的视频高清|