JavaME MIDlet Suites简介
  HomoDjYo9vTw 2023年11月02日 61 0


1. jam
jam (java application manager) 中文一般翻译为应用程序管理器。在有些文档中,jam也被叫做ams (application manager software),这两个术语所描述的概念是完全一样的。简单来讲,jam是管理移动设备上所有j2me应用程序的软件,负责j2me应用程序的下载、安装、更新与删除。jam由是移动设备本身所提供的,不同公司的实现略有不同,初级开发人员只要知道其作用就可以了。

2. midlet suite
对midlet suite简单理解是midlet程序的一个集合。midlet suite包含了一个或多个midlet、资源文件以及jar  manifest,这些内容被打包成一个jar包。通常情况上讲midlet suite还需要一个外部的jad描述文件。

midlet suite是为了解决多个midlet受控访问、共享资源的问题而提出的模型。举个共享资源的例子:在前面的章节中我们已经介绍过,rms的共享在一般情况下是以midlet suite为单位进行的,即同一个midlet suite中的midlet可以安全的共享所在midlet suite中的rms。因此,当多个midlet要共享rms时,就可以将它们放进一个midlet suite中。为了保证安全性,midlet suite中的midlet、资源文件都不能独立安装、删除或更新。即midlet suite必须作为一个整体包来对其操作。对于设备来讲midlet suite是一个基本单位。
 

3. jar manifest
ar文件就是经打包后的可执行文件,包括下面各种元素:
1)  实现midlet的类文件;
2)  midlet中用到的任何资源文件(包括图像、声音文件等);
3)  关于jar内容的一份jar manifest描述。
 
根据midp规范的规定,每个midlet suite的jar文件中必须包含一个名为mainifest.mf的文件,这个文件用于描述midlet suite的各种属性。

其中,必须包含以下属性:

属性名

说明

midlet-name

midlet suite的名称

midlet-version

midlet suite的版本号,格式为主版本.次版本.微版本,例如0.0.0,这也是版本号的默认值。版本号主要用于安装或升级。

midlet-vendor

midlet suite的提供商

如果jad描述文件中未提供下列属性,则jar manifest必须提供的属性:

属性名

说明

midlet-<n>

用来描述midlet suite中所包含midlet的信息。第一个midlet就以midlet-1代表,第二个midlet就以midlet-2代表。(最小从1开始,不能重复,不能间隔)。属性值格式如下:

应用程序名称,图标,类名称(以逗号间隔)

其中应用程序名称由开发人员指定;图标必须是位于jar中的png格式图像文件(可选);类名称为midlet的类文件名。

microedition-profile

midlet suite所需要profile的名称及版本号,如midp-1.0。多个profile用空格来分隔。如果所指定的任何一个profile设备无法提供(包括版本不兼容),jam将拒绝安装该midlet suite。

microedition-configuration

midlet suite所需要configuration名称及版本号,如cldc-1.1。如果设备无法提供该configuration,那么jam将拒绝安装该configuration。

可选以下属性:

属性名

说明

midlet-description

关于此midlet suite的简短说明。

midlet-icon

midlet suite的图标的文件名。必须位于jar文件中,以png为格式。

midlet-info-url

关于midlet suite更详细描述的url地址。

midlet-data-size

midlet suite所需要的持久化数据储存(persistent data,即rms)的大小,默认值为0。

midlet-permissions

执行此midlet suite的主要权限(见上章)

midlet-permissions-opt

执行此midlet suite的可选权限(见上章)

midlet-push-<n>

与javax.microedition.io.pushregistry有关,详见push章。

midlet-install-notify

向此url发送一个post请求,报告此midlet suite的安装状况,比如是全新安装还是升级安装。

midlet-delete-notify

向此url发送一个post请求,报告此midlet suite的删除状况。

midlet-delete-confirm

当用户选择删除midlet suite时,将给予用户的提示信息。

应用程序专用的任何属性

不以“midlet-”或“microedition-”开头

注意:所有属性都可以通过调用midlet.getappproperty方法取得。

 

范例:我们假设一个名字为mygame的midlet suite,由ppj2me公司提供,版本为1.1.1。其中包括两个midlet:mygame01,mygame02。那么对应mainifest.mf文件可能是这样的:

mainifest.mf

midlet-name: mygame

midlet-version: 1.1.1

midlet-vendor: ppj2me

midlet-1: mygame01, /mygame01.png, com.ppj2me.mygame01

midlet-2: mygame02, /mygame02.png, com.ppj2me.mygame02

microedition-profile: midp-2.0

microedition-configuration: cldc-1.1

4. jad描述文件
下面谈谈jad描述文件,虽然某些设备上,jam并不一定要求有jad描述文件。尤其在midp1.0时,jad描述文件似乎用处不大。但在midp2.0中,jad描述文件涉及了许多安全方面问题,显得尤为重要。一般而言,在下载jar文件前,会先下载jad描述文件,以让设备了解该midlet suite是否适合自己。避免直接下载jar文件导致大量的成本消耗。这也是设计jad描述文件的初衷之一。另一个目的就是提供在不更改jar的前提下修改某些属性值的能力。

jad描述文件为纯文本文件,文件扩展名为.jad。jad描述文件和jar manifest有很多相似的地方,所以部分说明请参见上一节。

如果有jad描述文件,则jad描述文件必须提供如下属性:

属性名

说明

midlet-name

midlet-version

midlet-vendor

midlet-jar-url

下载该midlet suite的url地址。虽然这里可以使用绝对位置或相对位置,但还是建议用绝对位置。

midlet-jar-size

jar文件的大小,计算单位为字节。

如果jar manifest未提供下列属性,jad描述文件中则必须提供:

属性名

说明

midlet-<n>

microedition-profile

microedition-configuration

可选以下属性:

属性名

说明

midlet-description

midlet-icon

midlet-info-url

midlet-data-size

midlet-permissions

midlet-permissions-opt

midlet-push-<n>

midlet-install-notify

midlet-delete-notify

midlet-delete-confirm

应用程序专用的任何属性

对应用程序自己的属性的说明

应用程序可以利用jad来记录自己的专用属性,只要不以“midlet-”或“microedition-”开头。这往往非常流行。因为一旦打包成jar,就不方便对其进行修改。而jad是文本文件,方便修改。因此这些属性常用来记录和设备相关的信息或者是网络地址等。这在移植程序时,减轻了很大的工作量。所有属性都可以通过调用midlet.getappproperty方法取得。

 

范例:我们假设一个名字为mygame的midlet suite,由ppj2me公司提供,版本为1.1.1。其中包括两个midlet:mygame01,mygame02。那么其对应的jad描述文件可能是这样的:

mygame.jad

midlet-name: mygame

midlet-version: 1.1.1

midlet-vendor: ppj2me

midlet-1: mygame01, /mygame01.png, com.ppj2me.mygame01

midlet-2: mygame02, /mygame02.png, com.ppj2me.mygame02

microedition-profile: midp-2.0

microedition-configuration: cldc-1.1

midlet-description: that our sample game.

midlet-jar-url: http://www.ppj2me.com/game/mygame.jar

midlet-jar-size: 7378

midlet-data-size: 256

5. jad 描述文件与jar manifest的关系
前面介绍jad描述文件的时候已经介绍了:为什么有了jar manifest的同时还要有jad描述文件存在的原因。那么这两者之间还有什么必然的联系吗?

jad描述文件和jar manifest中都包括了三个相同的必备属性:

属性名:

  •     
  • midlet-name     
  • midlet-version     
  • midlet-vendor
        

出于安全性考虑,midp规范规定,如果jad描述文件及jar manifest中这三个必备属性有任何不同的话,jam是不会安装该midlet suite的。

在调用midlet.getappproperty的时候:对于不可信任的midlet  suite,jad描述文件的属性会覆盖jar manifest中的属性。对于可信任的midlet suite,两者必须相同。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  AeUHztwqqxTz   2023年11月02日   53   0   0 springjavajar
  ssGPNGBVZK0u   2023年11月02日   69   0   0 tomcatjavajar
  xEqRD9hV9woQ   2023年11月14日   28   0   0 shelljavajar
  P3nxyT0LRuwj   2023年11月19日   28   0   0 javawar包jar
  8EMeTXf3DiYc   2023年11月02日   42   0   0 javajar
  9JCEeX0Eg8g4   2023年11月13日   20   0   0 服务列表javajar
  9JCEeX0Eg8g4   2023年11月13日   28   0   0 javajar