通常MIDP的应用程序是以.jar文件和.jad文件发布的,在jad文件中包含着Application Management Software用来管理MIDlets的生命周期的信息,

在jar包中包括一个目录META-INFO里面有个文件是MANIFEST.MF。它是用来描述JAR文件的,在MANIFEST.MF和JAD文件中的一些值是相同的,

如果MIDlets的jar包是signed(签署)的,那么AMS要去查看它的数字签名,如果是有效的那么它会首先去读取MANIFEST.MF的内容,然后读取jad文件中相同的内容,如果匹配的话那么它会安装这个jar包,如果不匹配的话就会拒绝安装。如果它发现数字签名无效的话直接就会拒绝安装。如果MIDlets的jar包是unsigned的话,那么AMS就把它认为是非信任的,他去读取jad文件的属性,如果发现没有的话它去读取MANIFEST的内容,也就是说如果jad和MANIFEST里都有的属性AMS只会去读取jad中的。

由于一个MIDlet suite里面可以有多个MIDlet的,因此你要说明他们比如MIDlet-1,MIDlet-2…..MIDlet-n,这一点非常的重要,在部署jar和jad文件到手机的时候一定要确保MIDlet-Name的正确,它的值是你的jar包的名字!否则不会安装成功的。还有两个值是jad文件中不许有的他们是MIDlet-Jar-URL ,
MIDlet-Jar-Size 其中应该注意的是MIDlet-Jar-URL,如果你要是通过OTA下载的话,那么你不许让他指向你jar包的绝对地址,例如http://myip:port/app/myapp.jar。

两种MIDlet

理解了保护域的概念就不难理解MIDP2.0安全体系结构定义的两种MIDlet——非信任MIDlet和信任MIDlet。

对于设备无法验证JAR文件来源和完整性的MIDlet套件,MIDP 2.0规范将其定义为非信任。非信任MIDlet运行在非信任保护域上。根据我们前面对非信任保护域的讨论,我们得知这并非表示MIDlet无法安装或执行;而是根据设备上保护域的是实现,要么API不能访问,要么对受限操作的访问需要显式用户许可。缺省情况下,所有MIDP 1.0的 MIDlet均为非信任的。

如果设备能够验证MIDlet套件的真实性和完整性并将其分配到一个保护域,MIDlet套件则被称作信任MIDlet套件。根据其保护域的行为,信任MIDlet套件将获得所请求的许可。例如,如果请求javax.microedition.io.Connector.http许可,且保护域已经将许可设置为trusted,那么无需用户确认即可打开HTTP连接。不要认为信任MIDlet套件一定运行在信任保护域上。信任MIDlet套件可分配给任何保护域,信任保护域只是其中一种,或者它在设备上干脆叫做别的名字。另外,推荐安全策略仅仅建议信任MIDlet对MIDP2的API调用不需要用户参与。所以如果你的信任MIDlet在使用某个非MIDP2规定的敏感API时出现了用户显式确认提示,请不要惊讶。不过一般出现这种情况都会有blanket(总是允许)模式供用户选择。

JAD文件的属性:

a) MIDlet-Jar-Size Jar文件大小,一般开发工具可自动生成。

b) MIDlet-Name MIDlet套件的名称。

c) MIDlet-Version J2ME程序版本。

d) MicroEdition-Configuration J2ME程序要求的配置的版本

e) MicroEdition-Profile 使用的规范的版本,MIDP-1.0和MIDP-2.0。

f) MIDlet-Vendor 该程序的提供商。

g) MIDlet-Jar-URL 该程序的Jar文件所在的网络地址。

h) MIDlet-n 其中n为大于0的自然数,使用该参数来指定启动的MIDlet的类名以及显示的名字。

可选属性:

a) MIDlet-Icon 使用的图标文件。

b) MIDlet–Data-Size 该程序用于进行记录数据存储的最小空间,单位是Byte。一般由系统自动生成。

c) MIDlet-Delete-Confirm 该程序被删除时向用户显示的信息。

d) MIDlet-Delete-Notify 改程序被删除时,发送报告使用的URL,必须以http://开始。

e) MIDlet-Description 该程序的详细描述信息。

f) MIDlet-Info-URL 该程序在网络上的更加详细的介绍信息地址。

g) MIDlet-Install-Notify 该程序安装成功后,发送报告使用的URL,必须以http://开头。

manifest.mf文件所有可能的信息如下:

MIDlet-Name ---MIDlet程序包的名称。

MIDlet-Version --MIDlet的版本号

MIDlet-Vendor —–MIDlet的创建者或提供商

MIDlet-Icon ———应用程序管理器把这个图标与 MIDlet-Name相关联,这是一个图形文件,以 PNG图象格式储存。

MIDlet-Description —–描述 MIDlet的文本
MIDlet-Info-URL —–可能提供更多MIDlet和/或供应商信息的 URL MIDlet- 这个属性包括三段信息:
MIDlet名称 /用于这个 MIDlet的图标(可选) /应用程序管理器将调用来加载这个MIDlet的类名
MIDlet-Jar-URL—- JAR文件的 URL MIDlet-Jar-Size —-JAR文件的大小
MIDlet-Data-Size—- 持久数据存储必需的最小字节数

j2me 关于MIDP 读取jad文件相关推荐

  1. KB: 如果通过API读取黑莓程序jad文件里面的属性

    如果通过API读取黑莓程序jad文件里面的属性 How To - Programmatically read the attributes of a JAD file Last Updated: 12 ...

  2. JAVA手机软件程序JAR文件和JAD文件详解

    我们知道有JAVA功能的手机程序(包括应用程序,游戏和电子书等等),主要都是由两个文件组成,一个是*.JAR,一个是*.JAD. 下面给大家讲解一下他们的主要性质和信息JAR文件包含这个程序的Java ...

  3. J2ME(cldc/midp)简介

    http://www.builder.com.cn/2003/0710/91106.shtml 名词梳理 在正式开始介绍J2ME之前,这里我列出一些常见名词,方便与下文参照: J2ME(Java2 P ...

  4. jad文件的错误代码,分享

    jad ( Java Application Discriptor ) 文件是J2ME的一个重要的组成部分,在我们发布J2ME程序的时候,jad文件经常报出各种错误,如: com.sun.kvem.m ...

  5. python读取xml文件报错ValueError: multi-byte encodings are not supported

    1.在使用python对xml文件进行读取时,提示ValueError: multi-byte encodings are not supported 很多贴子上说把xml的编码格式改为,就可以正常执 ...

  6. 如何读取比机器内存大的文件(内存4G,文件 8G,读取大文件) ?

    我们假设数据可以一行一行地处理,并且数据之间的没有相关性,那么我们有两种方法读取该文件. 1. 使用生成器 yield 逐行读取到内存 def read_file(filename):with ope ...

  7. java 读取txt,java读取大文件

    java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File; import java.io.RandomAccessFile; ...

  8. php渲染nodejs api,如何使用nodejs 服务器读取HTML文件渲染至前端

    这次给大家带来如何使用nodejs 服务器读取HTML文件渲染至前端,使用nodejs 服务器读取HTML文件渲染至前端的注意事项有哪些,下面就是实战案例,一起来看一下. 1.分别简单实现三个备用页面 ...

  9. python 英文字符频率统计 采用降序方式输出_Python读取英文文件并记录每个单词出现次数后降序输出示例...

    本文实例讲述了Python读取英文文件并记录每个单词出现次数后降序输出.分享给大家供大家参考,具体如下: 对文中出现的句号,逗号和感叹号做了相应的处理 sorted排序函数用法: 按照value值降序 ...

  10. php把excel变成数组,PHP excel读取excel文件转换为数组

    /* 备注:先去下载PHP EXCEL--http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=phpexcel&a ...

最新文章

  1. ue4android相机拍照插件,cordova-plugin-camera相機插件使用
  2. 基于ZooKeeper的Dubbo简单抽样登记中心
  3. [译]GC专家系列5-Java应用性能优化的原则
  4. lisp 车位块自动编号_机械车位做产权登记,真的适合吗?
  5. 【C++】C++类的学习(二)——构造函数、析构函数、拷贝构造函数以及this指针
  6. Alain 菜单权限控制
  7. Spring 的下载、安装和使用
  8. 2.10_hash_table_哈希表 / 散列表
  9. 小米立 Flag:要做年轻人的第一个深度学习框架
  10. JAVA数组批量设值(初始化)的办法
  11. php7和PHP5对比的新特性和性能优化
  12. 51单片机流水灯和蜂鸣器同步
  13. 从一个简单的main方法执行谈谈JVM工作机制
  14. 图形化开发(五)011-Three.js之Geometry几何体——立方体、圆形、圆锥
  15. LZJ的圣剑,第二次模拟赛,贪心
  16. 类型多样的电子数码免抠元素素材,速来收藏
  17. DRM框架(vkms)分析(4)----encoder初始化
  18. node.js express配置响应头解决跨域问题
  19. 2022年十一届认证杯D题
  20. 摩莎(MOXA)NPort 5110串口转网口设定

热门文章

  1. VX线报机器人的使用
  2. comsol和java_COMSOL java API——编译comsol模型java文件
  3. 小米上市之后的危与机
  4. win7用计算机名共享打印机,WIN7共享打印机 可以同时多少台电脑共享一台打印机-win7一键共享打印机,win7一键共享工具软件...
  5. ffmpeg实现摄像头拉流_ffmpeg推流及拉流
  6. Java三种方法实现字符串排序
  7. 睡眠阶段分期——SVM和ELM分别与粒子群算法结合(function)
  8. I219网卡rom数据坏了以后,恢复网卡rom数据
  9. bp神经网络模型拓扑结构,bp神经网络模型结构图
  10. 华为云服务器手机密码找回,忘记华为账号密码怎么办?两招就能帮你解决