麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

詳細(xì)說明 MIDP 中的屬性問題

2019-11-18 13:15:00
字體:
供稿:網(wǎng)友

  本文目的是說明MIDP中的屬性問題,主要涉及到j(luò)ad和MANIFEST.MF文件的一些概念。事實(shí)上很多人并不清楚這方面的細(xì)節(jié)。所以你應(yīng)該仔細(xì)讀讀這篇文章.
  
  通常MIDP的應(yīng)用程序是以.jar文件和.jad文件發(fā)布的。jar文件就是我們所說的jar包,jad文件的全名是java application descriptor。在jad文件中包含著Application Management Software用來治理MIDlets的生命周期的信息,當(dāng)然也包括很多重要的屬性。他們是成對(duì)出現(xiàn)的例如:MIDlet-Name:myjava。你可以通過調(diào)用getApp  
  在jar包里面包括一個(gè)目錄META-INFO里面有個(gè)文件是MANIFEST.MF。它是用來描述JAR文件的,也包含一些其它的信息,你可能發(fā)現(xiàn)了,在MANIFEST.MF和JAD文件中的一些值是相同的。那么這就存在著一個(gè)規(guī)則,AMS如何決定去讀取哪個(gè)值呢?答案是這樣的。
  
  假如MIDlets的jar包是signed的,那么AMS要去察看它的數(shù)字簽名,假如是有效的那么它會(huì)首先去讀取MANIFEST.MF的內(nèi)容,然后讀取jad文件中相同的內(nèi)容,假如匹配的話那么它會(huì)安裝這個(gè)jar包,假如不匹配的話就會(huì)拒絕安裝。假如他發(fā)現(xiàn)數(shù)字簽名無效的話直接就會(huì)拒絕安裝。
  
  假如MDIlets的jar包是unsigned的話,那么AMS就把它認(rèn)為是非信任的,他去讀取jad文件的屬性,假如發(fā)現(xiàn)沒有的話它去讀取MANIFEST的內(nèi)容,也就是說假如jad和MANIFEST里面都有的屬性AMS只會(huì)去讀取jad中的。
  
  下面這個(gè)邏輯看上去是比較清楚的:
   given : String key // attribute name
   return : String value
   throws : NullPointerException if key is null
  
   if trusted
   String v0 = lookup key in manifest
   String v1 = lookup key in descriptor
  
   if ( v0 != null && v1 != null )
    // found in both; must be the same value
    assert( v0.compareTo( v1 ) == 0 );
  
   value = ( v1 != null )? v1 : v0;
   else // untrusted
   value = lookup key in descriptor
  
   if value == null
    value = lookup key in manifest
  
   return value
  
  下面簡(jiǎn)單介紹一下MIDP2.0中定義的一些重要的參數(shù),在MIDP2.0中定義了18個(gè)值。其中在MANIFEST.MF和jad中都必須定義的有六個(gè),他們是:
  MIDlet-Name
  MIDlet-Version
  MIDlet-Vendor
  MicroEdition-Profile
  MicroEdition-Configuration 
  MIDlet-n
  由于一個(gè)MIDlet suite里面可以有多個(gè)MIDlet的,因此你要說明他們比如MIDlet-1,MIDlet-2.....MIDlet-n,這一點(diǎn)非常的重要,在部署jar和jad文件到手機(jī)的時(shí)候一定要確保MIDlet-Name的正確,它的值是你的jar包的名字!否則不會(huì)安裝成功的。還有兩個(gè)值是jad文件中不許有的他們是MIDlet-Jar-URL ,
  
  MIDlet-Jar-Size 其中應(yīng)該注重的是MIDlet-Jar-URL,假如你要是通過OTA下載的話,那么你不許讓他指向你jar包的絕對(duì)地址,例如http://myip:port/app/myapp.jar。
  
  關(guān)于一個(gè)MIDlet suite里面有多個(gè)MIDlet的情況我寫了個(gè)簡(jiǎn)單的代碼測(cè)試了一下,假如還有疑問的話你可以運(yùn)行一下下面的程序:
  import javax.microedition.lcdui.Display;
  import javax.microedition.lcdui.Form;
  import javax.microedition.midlet.MIDlet;
  import javax.microedition.midlet.MIDletStateChangeException;
  /*
   * Created on 2004-7-14
   *
   * TODO To change the template for this generated file go to
   * Window - Preferences - Java - Code Style - Code Templates
   */
  
  /**
   * @author E2412C
   *
   * TODO To change the template for this generated type comment go to
   * Window - Preferences - Java - Code Style - Code Templates
   */
  public class MIDlet1 extends MIDlet
  {
  
    private Display display;
    
    /* (non-Javadoc)
     * @see javax.microedition.midlet.MIDlet#startApp()
     */
    protected void startApp() throws MIDletStateChangeException
    {
      // TODO Auto-generated method stub
      display = Display.getDisplay(this);
      display.setCurrent(new Form("1"));
    }
  
    /* (non-Javadoc)
     * @see javax.microedition.midlet.MIDlet#pauseApp()
     */
    protected void pauseApp()
    {
      // TODO Auto-generated method stub
  
    }
  
    /* (non-Javadoc)
     * @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
     */
    protected void destroyApp(boolean arg0) throws MIDletStateChangeException
    {
      // TODO Auto-generated method stub
  
    }
  
  }
  import javax.microedition.lcdui.Display;
  import javax.microedition.lcdui.Form;
  import javax.microedition.midlet.MIDlet;
  import javax.microedition.midlet.MIDletStateChangeException;
  /*
   * Created on 2004-7-14
   *
   * TODO To change the template for this generated file go to
   * Window - Preferences - Java - Code Style - Code Templates
   */
  
  /**
   * @author E2412C
   *
   * TODO To change the template for this generated type comment go to
   * Window - Preferences - Java - Code Style - Code Templates
   */
  public class MIDlet2 extends MIDlet
  {
  
    private Display display;
    
    /* (non-Javadoc)
     * @see javax.microedition.midlet.MIDlet#startApp()
     */
    protected void startApp() throws MIDletStateChangeException
    {
      // TODO Auto-generated method stub
      display = Display.getDisplay(this);
      display.setCurrent(new Form("2"));
    }
  
    /* (non-Javadoc)
     * @see javax.microedition.midlet.MIDlet#pauseApp()
     */
    protected void pauseApp()
    {
      // TODO Auto-generated method stub
  
    }
  
    /* (non-Javadoc)
     * @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
     */
    protected void destroyApp(boolean arg0) throws MIDletStateChangeException
    {
      // TODO Auto-generated method stub
  
    }
  
  }
  import javax.microedition.lcdui.Display;
  import javax.microedition.lcdui.Form;
  import javax.microedition.midlet.MIDlet;
  import javax.microedition.midlet.MIDletStateChangeException;
  /*
   * Created on 2004-7-14
   *
   * TODO To change the template for this generated file go to
   * Window - Preferences - Java - Code Style - Code Templates
   */
  
  /**
   * @author E2412C
   *
   * TODO To change the template for this generated type comment go to
   * Window - Preferences - Java - Code Style - Code Templates
   */
  public class MIDlet3 extends MIDlet
  {
  
    private Display display;
    
    /* (non-Javadoc)
     * @see javax.microedition.midlet.MIDlet#startApp()
     */
    protected void startApp() throws MIDletStateChangeException
    {
      // TODO Auto-generated method stub
      display = Display.getDisplay(this);
      display.setCurrent(new Form("3"));
    }
  
    /* (non-Javadoc)
     * @see javax.microedition.midlet.MIDlet#pauseApp()
     */
    protected void pauseApp()
    {
      // TODO Auto-generated method stub
  
    }
  
    /* (non-Javadoc)
     * @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
     */
    protected void destroyApp(boolean arg0) throws MIDletStateChangeException
    {
      // TODO Auto-generated method stub
  
    }
  
  }
  JAD文件的內(nèi)容如下:
  MIDlet-3: MIDlet3,,MIDlet3
  MIDlet-2: MIDlet1,,MIDlet1
  MIDlet-1: MIDlet2,,MIDlet2
  MIDlet-Jar-URL:

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: hd日本xxxx| 成人精品一区二区三区中文字幕 | 欧美性生活久久 | 久久久久久久久久亚洲 | 国产精品av久久久久久无 | 午夜丰满少妇高清毛片1000部 | 欧美成人三级视频 | 懂色av懂色aⅴ精彩av | 午夜在线视频一区二区三区 | 日韩视频在线观看免费 | 美女91视频 | 污视频在线看 | 欧美日韩一 | www.mitao | 日本在线国产 | 国产一区二区观看 | 国产成人高清在线观看 | 欧产日产国产精品v | 久久久一区二区三区精品 | 日韩午夜片 | 黄色小视频免费在线观看 | 亚洲国产女同久久 | 视频一区二区精品 | 欧美成年人视频在线观看 | 亚洲人片在线观看 | 久久国产成人午夜av浪潮 | 亚洲片在线观看 | 最新中文字幕日本 | 日本综合久久 | 夜夜看 | 精品国产一区二区三区四区阿崩 | 色综合久久久久久久久久 | 九九黄色 | 一区二区三区小视频 | 337p日本欧洲亚洲大胆精蜜臀 | 久久国产综合视频 | 羞羞答答影院 | 久久九九热re6这里有精品 | 久久精品成人免费国产片桃视频 | 国产亚洲精品久久777777 | 99999久久久久久 |