选择显示字体大小

生成midlet套件漫谈

生成midlet套件漫谈

作者:cleverpig


版权声明:本文可以自由转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
作者:cleverpig(http://blog.matrix.org.cn/page/cleverpig)
原文:http://www.matrix.org.cn/resource/article/43/43961_midlet.html
关键字:midlet,jar,pad,manifest


摘要:

      下文主要谈一下生成midlet的相关知识,即介绍一下 midlet套件以及jar和jad的知识,为了说明方便,我们还将写一个midlet程序并利用上面介绍的那个midlet程序,并创建jar文件和jad文件来封装这些程序。我们还要看着如何使用 java程序包改变我们的开发过程。

一、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, golfmidlet
midlet-jar-url jar文件的 url
midlet-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 midlet
midlet-version: 1.0.1
midlet-vendor: abc workgroup.
midlet-1: showprops, , showproperties
microedition-profile: midp-1.0
microedition-configuration: cldc-1.0
midlet-description: a simple property list example
midlet-data-size: 1500


  showproperties.jad的内容:

midlet-name: show properties midlet
midlet-version: 1.0.1
midlet-vendor: abc workgroup.
midlet-jar-url: file://showproperties.jar
midlet-jar-size: 1132
midlet-1: showprops, , showproperties
jadfile-version: 1.5
midlet-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。



 


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons