知识大全 详细说明 MIDP 中的属性问题

Posted 文件

篇首语:学而不思则罔,思而不学则殆。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 详细说明 MIDP 中的属性问题相关的知识,希望对你有一定的参考价值。

详细说明 MIDP 中的属性问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  本文目的是说明MIDP中的属性问题 主要涉及到jad和MANIFEST MF文件的一些概念 事实上很多人并不清楚这方面的细节 所以你应该仔细读读这篇文章     通常MIDP的应用程序是以 jar文件和 jad文件发布的 jar文件就是我们所说的jar包 jad文件的全名是java application descriptor 在jad文件中包含着Application Management Sofare用来管理MIDlets的生命周期的信息 当然也包括很多重要的属性 他们是成对出现的例如 MIDlet Name myjava 你可以通过调用getAppProperty( MIDlet Name )来得到String类型的myjava 这是非常方便的 如果你想让你的MIDlet去联网那么你可以定义一个name为SERVER_URL 把它的值定义//yourip:port/myservlet 这样如果你想去连接其他地址的话只需要修改jad文件了 不需要重新编译 因此我们要清楚一点在jad文件里面放置一些MIDlet初始化需要的值是比较可取的     在jar包里面包括一个目录META INFO里面有个文件是MANIFEST MF 它是用来描述JAR文件的 也包含一些其它的信息 你可能发现了 在MANIFEST MF和JAD文件中的一些值是相同的 那么这就存在着一个规则 AMS如何决定去读取哪个值呢?答案是这样的     如果MIDlets的jar包是signed的 那么AMS要去察看它的数字签名 如果是有效的那么它会首先去读取MANIFEST MF的内容 然后读取jad文件中相同的内容 如果匹配的话那么它会安装这个jar包 如果不匹配的话就会拒绝安装 如果他发现数字签名无效的话直接就会拒绝安装     如果MDIlets的jar包是unsigned的话 那么AMS就把它认为是非信任的 他去读取jad文件的属性 如果发现没有的话它去读取MANIFEST的内容 也就是说如果jad和MANIFEST里面都有的属性AMS只会去读取jad中的     下面这个逻辑看上去是比较清楚的    given : String key // attribute name   return : String value   throws : NullPointerException if key is null     if trusted   String v = lookup key in manifest   String v = lookup key in descriptor     if ( v != null && v != null )    // found in both; must be the same value    assert( pareTo( v ) == );     value = ( v != null )? v : v ;   else // untrusted   value = lookup key in descriptor     if value == null    value = lookup key in manifest     return value    下面简单介绍一下MIDP 中定义的一些重要的参数 在MIDP 中定义了 个值 其中在MANIFEST MF和jad中都必须定义的有六个 他们是   MIDlet Name   MIDlet Version   MIDlet Vendor   MicroEdition Profile   MicroEdition Configuration   MIDlet n   由于一个MIDlet suite里面可以有多个MIDlet的 因此你要说明他们比如MIDlet MIDlet MIDlet n 这一点非常的重要 在部署jar和jad文件到手机的时候一定要确保MIDlet Name的正确 它的值是你的jar包的名字!否则不会安装成功的 还有两个值是jad文件中不许有的他们是MIDlet Jar URL     MIDlet Jar Size 其中应该注意的是MIDlet Jar URL 如果你要是通过OTA下载的话 那么你不许让他指向你jar包的绝对地址 例如     关于一个MIDlet suite里面有多个MIDlet的情况我写了个简单的代码测试了一下 如果还有疑问的话你可以运行一下下面的程序   import javax microedition lcdui Display;  import javax microedition lcdui Form;  import javax microedition midlet MIDlet;  import javax microedition midlet MIDletStateChangeException;  /*   * Created on    *   * TODO To change the template for this generated file go to   * Window Preferences Java Code Style Code Templates   */    /**   * @author E C   *   * TODO To change the template for this generated type ment go to   * Window Preferences Java Code Style Code Templates   */  public class MIDlet 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( ));          /* (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 arg ) 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    *   * TODO To change the template for this generated file go to   * Window Preferences Java Code Style Code Templates   */    /**   * @author E C   *   * TODO To change the template for this generated type ment go to   * Window Preferences Java Code Style Code Templates   */  public class MIDlet 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( ));          /* (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 arg ) 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    *   * TODO To change the template for this generated file go to   * Window Preferences Java Code Style Code Templates   */    /**   * @author E C   *   * TODO To change the template for this generated type ment go to   * Window Preferences Java Code Style Code Templates   */  public class MIDlet 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( ));          /* (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 arg ) throws MIDletStateChangeException          // TODO Auto generated method stub            JAD文件的内容如下   MIDlet : MIDlet MIDlet   MIDlet : MIDlet MIDlet   MIDlet : MIDlet MIDlet   MIDlet Jar URL: cha138/Article/program/Java/JSP/201311/19259

相关参考

知识大全 MIDP 1.0 HttpConnection类的robust封装

MIDP1.0HttpConnection类的robust封装  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 请详细说明!谢谢

关于英语考级问题!请详细说明!谢谢!不是一起考的,普通英语四级(CET4)在每年两次,六月中旬和十二月中旬;专业四级(TEM4)每年一次,四月中旬。普通四级是针对所有在校大学生的考试,比较简单;专业四

知识大全 Delphi部分函数、命令、属性中文说明

Delphi部分函数、命令、属性中文说明  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Abort函

知识大全 类库DLL方法属性说明提示的制作方法

类库DLL方法属性说明提示的制作方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  类代码中: 

知识大全 我想给学生做一个团体心理游戏,请推荐一下,最好有详细的说明。谢谢

我想给学生做一个团体心理游戏,请推荐一下,最好有详细的说明。谢谢!“盲人”开车活动目的1、通过活动建立成员之间身体和情感的信任,让成员们体验一定的冒险经历,学会站在别人的角度看问题。2、帮助培养成员之

“人的本质不是单个人所固有的抽象物,在其现实性上,它是一切社会关系的总和。”这句话说明__

“人的本质不是单个人所固有的抽象物,在其现实性上,它是一切社会关系的总和。”这句话说明_____。A、自然属性是人的本质属性B、自然属性和社会属性都是人的本质属性C、社会属性是人的本质属性D、自然属性

应急演练结束后应对演练的效果做出评价,并提交演练报告。演练报告必须详细说明的内容是( )

应急演练结束后应对演练的效果做出评价,并提交演练报告。演练报告必须详细说明的内容是()。A.应急预案的结构及内容B.应急演练的策划C.应急演练的准备D.应急演练过程中发现的问题答案:D【知识点】应急演

应急演练结束后应对演练的效果做出评价,并提交演练报告。演练报告必须详细说明的内容是( )

应急演练结束后应对演练的效果做出评价,并提交演练报告。演练报告必须详细说明的内容是()。A.应急预案的结构及内容B.应急演练的策划C.应急演练的准备D.应急演练过程中发现的问题答案:D【知识点】应急演

哪些食物容易引发荨麻疹

荨麻疹是皮肤病中的一个较为重要的部分,在其发病因素中,有很多因素同不健康的饮食习惯有直接的关系,今天我们就针对饮食诱发荨麻疹的问题进行详细的分析说明,期待能给大家一个健康的饮食依据。要解释这些问题我们

知识大全 asp.net中的validaterequest属性与安全性

  不知道大家之前有没有注意到这个属性这里我们来一起讨论一下这个属性的作用以及我们以后到底该怎样使用它!  我们先来了解一下这个属性:(注:本属性中是新增的!)  它所在的命名空间:SystemWeb