Java资源网

| JAVA基础 | 环境配置 | JDBC | 线程技术 | Socket编程 | JavaMail | JAVA与XML | 设计模式 | 技术新闻 | Java认证 | 程序人生 软件下载
| JSP&Servlet | Spring | Struts | Hibernate | JBuilder | Eclipse | WebService | EJB技术 | J2ME开发 | 应用服务器 | JXTA | Ajax
Articles search文章搜索
   关键字:
   类 别:
       
New download 最新下载
· [组件]HTML Parser 1.5
· [教程]WebSphere Studio应用教程
· [组件]JDom 1.0
· [工具]Junit3.8.1
· [教程]EJB编程及J2EE系统架构和设计
· [教程]EJB教程
· [教程]J2EE Tutorial中文版
· [教程]Java编程思想2(英文)
· [教程]java编程思想(完整版)
· [教程]Java网络编程
New articles 最新文章
· 设计移动 Web 服务
· 解析XML的时候完全忽略DTD
· 理解XML Schema XML Schema 初步
· 标签库的深入研究
· 提升JSP应用程序的七大绝招
· 如何使用JDOM对XML文件进行操作
· 处理XML字符串中特殊字符
· 利用Digester把XML转换成为Java对象
· 使用WebService 和RMI远程协作
· 使用Axis开发Web Service程序
Articles top 热门文章
· Eclipse基础--plugin插件安装(6644)
· eclipse+tomcat+lomboz的安装配置说明(4774)
· Java程序员就业前景(4584)
· Windows下JAVA环境变量的设置祥解(3788)
· Tomcat下JSP、Servlet和JavaBean环境的配置(3716)
· 使用links方式安装Eclipse插件(3698)
· 一个老程序员的心理话(3533)
· linux下jdk的安装与配置(3459)
· 初学者入门:Structs中基本配置入门(3334)
· Eclipse 运行命令行参数大全(3084)
您的位置:首页>>J2ME开发>>开发过程中生成MIDlet套件漫谈
开发过程中生成MIDlet套件漫谈
2007-04-17   来源:www.javaresearch.org  作者:未知

  一、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。
  --相关文章--
· 详细介绍手机游戏中的声音处理 (2007-04-17)
· 让JavaME程序实现真正Run Anywhere (2007-04-17)
· 端到端J2ME应用开发实例——介绍Smart Ticket (2007-04-17)
· 移动开发谁领风骚 J2ME开发工具面面观 (2007-04-17)
· 用NetBeans平台开发J2ME游戏实例讲解3 (2007-04-17)
· 用NetBeans平台开发J2ME游戏实例讲解2 (2007-04-17)

版权所有©2005-2006 JAVA资源网 渝ICP备05007591号 虚拟主机 | 关于我们 | 联系方式 | 广告业务 | 网站地图 | 友情链接