您现在的位置是:首页
>
视频属性详细信息没有 详细说明 MIDP 中的属性问题
详细说明 MIDP 中的属性问题 本文目的是说明MIDP中的属性问题 主要涉及到jad和MANIFEST MF文件的一些概念 事实上很多人并不清楚这方面的细节 所以你应该仔细读读这篇文章

详细说明 MIDP 中的属性问题
本文目的是说明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: lishixinzhi/Article/program/Java/JSP/201311/19259 很赞哦! (1063)