roruby 发表于 2013-1-30 22:06:11

MIDlet的开发流程与部署

     MIDlet的开发流程与部署<span style="line-height: 120%;" /> 

<span /> 
l         编译
l         混淆(可选)
l         预审核
l         打包
打包后,将获得了一个jar文件。接下来为jar文件编写一个以jad为后缀的描述文件。最后通过各种途径将jar文件、jad描述文件传输到移动设备上运行即可。
<span /> 
<a name="_Toc104992547" /><a name="_Toc104991690" /><a name="_Toc104867776">10.1.1 开发流程详解

完整的MIDP手机程序开发流程如下表(其中混淆为可选):
流程
工具
输入
输出
编译
javac.exe编译
源文件(*.java)
未混淆的类文件(*.class)
混淆
第三方提供的工具
未混淆的类文件(*.class)
混淆后的类文件(*.class)
预审
preverify.exe预审核
混淆后的类文件(*.class)
经过预先审核的类文件(*.class)

jar.exe打包
经过预先审核的类文件(*.class)
包文件(*.jar)
编写描述文件
文本编辑工具
<span /> 
描述文件(*.jad)
安装运行
传输工具
(IR/BT/数据线/OTA)
包文件(*.jar)和
描述文件(*.jad)
在仿真器或手机上正式运行
<span /> 
下面将会介绍每个步骤。当利用集成开发环境(诸如JBuilder、NetBeans、Sun ONE Studio、Eclipse等)时,这些工具不仅可以很快的帮我们建立起代码的主干,而且可以帮助我们自动的完成上面的大部份工作(关于集成开发环境的利用见后面的章节)。在利用IDE开发之前,开发者有必要了解其中每一步的原理。
<span /> 
编译
<span /> 
编译就是将我们所编制的*.java 文文件,编译成为二进制的*.class文件(计算机只认识二进制!)。javac.exe是由Sun公司编写的一个编译器,它可以把*.java文件编译成为*.class文件。注意:如果一个*.java文件中定义了三个类,它就将被编译成三个*.class文件。
<span /> 
混淆(可选)
<span /> 
由于class文件格式透明的缘故,java文件很容易被反汇编。因此,如果你不希望别人掌握你的源代码的话,你一定要进行混淆(obfuscate)。所谓混淆,就是利用工具,将方法名、类名改成没有实际意义的特定的字符及代号,增加阅读的难度。这样就充分的保护了我们自己的知识产权。而且混淆还有个意想不到的好处,就是减少程序的大小。这是由于混淆器将我们设定的方法名、类名变成没有意义的短字符或代码,无形中减少了程序的大小。对于手机程序设计来讲尤为重要,每K的减少都意味着可以获得更多的空间。混淆器都是第三方软件开发商提供的,许多都是开源的,可以免费使用。常见的混淆器见下表:
名称
地址
特点
JODE
http://jode.sourceforge.net/
开源
ProGuard
http://proguard.sourceforge.net/
开源
RetroGuard
http://www.retrologic.com/
开源,中国移动百宝箱强制使用
DashO
http://www.preemptive.com/
商业软件,一般专业公司使用,昂贵
ZKM
http://www.zelix.com/
商业软件可试用
JBuilder
http://www.borland.com/
集成开发环境中内附混淆功能,但JBuilder的价格也不便宜。
<span /> 
预审核
<span /> 
在完成编译后,我们必须要对*.class文件进行预审核,这和传统的Java程序(Applet、Servlet)是不同的。因为class在传输过程中容易损坏或是被篡改,传统的Java程序在运行前,都在本地机器上对.class进行Byte Code的审核。而对于手机这样的资源有限设备而言,在手机上进行大量的此类的审核是极为浪费资源(如占用CPU的时间、消耗电力等)。因此,我们必须先在PC机上使用preverify.exe进行一部份预选审核工作。这样,在手机上进行的审核工作就大量减少了。
<span /> 
打包与编写描述文件
<span /> 
MIDP可执行文件后缀名为jar。利用jar file.class就能将通过预审核的*.class文件,打包成 MIDP认可的可执行文件。后缀名为jad的文件是jar文件的描述文件,jad文件详细介绍见第二节。
<span /> 
在仿真器或手机上安装运行
<span /> 
有了jar及jad文文件后,我们就可以把它们放到仿真器或手机上运行了。至于如何把它们放到手机上,根据手机的功能不同,有如下方法可以选择:
l         使用数据线,将PC与手机相连,下载文件
l         使用红外线
l         使用蓝牙
l         使用OTA空中下载(利用短信/WAP)
<span /> 
10.2        MIDlet-Name</p>MIDlet Suite的名称
MIDlet-Version
MIDlet Suite的版本号,格式为主版本.次版本.微版本,例如0.0.0,这也是版本号的默认值。版本号主要用于安装或升级。
MIDlet-Vendor
MIDlet Suite的提供商
<span /> 
如果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。
<span /> 
可选以下属性:
属性名
说明
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方法取得。
<span /> 
范例:我们假设一个名字为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
<a name="_Toc104992552" /><a name="_Toc104991695" /><a name="_Toc104867781">10.2.4 JAD描述文件

下面谈谈JAD描述文件,虽然某些设备上,JAM并不一定要求有JAD描述文件。尤其在MIDP1.0时,JAD描述文件似乎用处不大。但在MIDP2.0中,JAD描述文件涉及了许多安全方面问题,显得尤为重要。一般而言,在下载JAR文件前,会先下载JAD描述文件,以让设备了解该MIDlet Suite是否适合自己。避免直接下载JAR文件导致大量的成本消耗。这也是设计JAD描述文件的初衷之一。另一个目的就是提供在不更改JAR的前提下修改某些属性值的能力。
<span /> 
JAD描述文件为纯文本文件,文件扩展名为.jad。JAD描述文件和JAR manifest有很多相似的地方,所以部分说明请参见上一节。
<span /> 
如果有JAD描述文件,则JAD描述文件必须提供如下属性:
属性名
说明
MIDlet-Name

MIDlet-Version

MIDlet-Vendor

MIDlet-Jar-URL
下载该MIDlet Suite的URL地址。虽然这里可以使用绝对位置或相对位置,但还是建议用绝对位置。
MIDlet-Jar-Size
JAR文件的大小,计算单位为字节。
<span /> 
如果JAR manifest未提供下列属性,JAD描述文件中则必须提供:
属性名
说明
MIDlet-<n>

MicroEdition-Profile

MicroEdition-Configuration

<span /> 
可选以下属性:
页: [1]
查看完整版本: MIDlet的开发流程与部署