`
fanjava
  • 浏览: 236003 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

MIDlet的开发流程与部署

阅读更多
MIDlet的开发流程与部署


10.1 j2me程序的开发流程

在本章之前所介绍的都是怎么样编写J2ME的源文件(即*.java文件)。因为j2me不同于j2se程序的开发流程,在编写好java源文件后,我们还要继续进行如下工作:

l 编译

l 混淆(可选)

l 预审核

l 打包

打包后,将获得了一个jar文件。接下来为jar文件编写一个以jad为后缀的描述文件。最后通过各种途径将jar文件、jad描述文件传输到移动设备上运行即可。

10.1.1 开发流程详解

完整的MIDP手机程序开发流程如下表(其中混淆为可选):

流程

工具

输入

输出

编译

javac.exe编译

源文件(*.java

未混淆的类文件(*.class

混淆

第三方提供的工具

未混淆的类文件(*.class

混淆后的类文件(*.class

预审

preverify.exe预审核

混淆后的类文件(*.class

经过预先审核的类文件(*.class

jar.exe打包

经过预先审核的类文件(*.class

包文件(*.jar

编写描述文件

文本编辑工具

描述文件(*.jad

安装运行

传输工具

IR/BT/数据线/OTA

包文件(*.jar)和

描述文件(*.jad

在仿真器或手机上正式运行

下面将会介绍每个步骤。当利用集成开发环境(诸如JBuilderNetBeansSun ONE StudioEclipse等)时,这些工具不仅可以很快的帮我们建立起代码的主干,而且可以帮助我们自动的完成上面的大部份工作(关于集成开发环境的利用见后面的章节)。在利用IDE开发之前,开发者有必要了解其中每一步的原理。

编译

编译就是将我们所编制的*.java 文文件,编译成为二进制的*.class文件(计算机只认识二进制!)。javac.exe是由Sun公司编写的一个编译器,它可以把*.java文件编译成为*.class文件。注意:如果一个*.java文件中定义了三个类,它就将被编译成三个*.class文件。

混淆(可选)

由于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的价格也不便宜。

预审核

在完成编译后,我们必须要对*.class文件进行预审核,这和传统的Java程序(AppletServlet)是不同的。因为class在传输过程中容易损坏或是被篡改,传统的Java程序在运行前,都在本地机器上对.class进行Byte Code的审核。而对于手机这样的资源有限设备而言,在手机上进行大量的此类的审核是极为浪费资源(如占用CPU的时间、消耗电力等)。因此,我们必须先在PC机上使用preverify.exe进行一部份预选审核工作。这样,在手机上进行的审核工作就大量减少了。

打包与编写描述文件

MIDP可执行文件后缀名为jar。利用jar file.class就能将通过预审核的*.class文件,打包成 MIDP认可的可执行文件。后缀名为jad的文件是jar文件的描述文件,jad文件详细介绍见第二节。

在仿真器或手机上安装运行

有了jarjad文文件后,我们就可以把它们放到仿真器或手机上运行了。至于如何把它们放到手机上,根据手机的功能不同,有如下方法可以选择:

l 使用数据线,将PC与手机相连,下载文件

l 使用红外线

l 使用蓝牙

l 使用OTA空中下载(利用短信/WAP

10.2 MIDlet Suites

10.2.1 JAM

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

10.2.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是一个基本单位。

10.2.3 JAR manifest

前面我们介绍过,JAR文件就是经打包后的可执行文件,包括下面各种元素:

1 实现MIDlet的类文件;

2 MIDlet中用到的任何资源文件(包括图像、声音文件等);

3 关于JAR内容的一份JAR manifest描述。

根据MIDP规范的规定,每个MIDlet SuiteJAR文件中必须包含一个名为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方法取得。

范例:我们假设一个名字为MyGameMIDlet Suite,由PPJ2me公司提供,版本为1.1.1。其中包括两个MIDletMyGame01MyGame02。那么对应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

10.2.4 JAD描述文件

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

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

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

属性名

说明

MIDlet-Name

MIDlet-Version

MIDlet-Vendor

MIDlet-Jar-URL

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

MIDlet-Jar-Size

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

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

属性名

说明

MIDlet-<n>

MicroEdition-Profile

MicroEdition-Configuration

可选以下属性:

属性名

说明

MIDlet-Description

MIDlet-Icon

MIDlet-Info-URL

MIDlet-Data-Size

border-right: black 1.5pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left
分享到:
评论

相关推荐

    黑莓MIDlet开发指南

    #### 五、MIDlet开发流程 1. **项目创建**:在集成开发环境中新建一个MIDlet项目。 2. **UI设计**:根据需求设计用户界面,可以使用AWT/SWT组件库或自定义组件。 3. **功能实现**:编写业务逻辑代码,实现所需的功能...

    J2me 开发流程

    通过上述介绍可以看出,J2ME下的MIDlet开发流程涵盖了从设计、编码、测试到发布的整个过程。开发者需要掌握相关的技术和工具,才能有效地开发出高质量的移动应用。尽管随着技术的发展,J2ME已逐渐被Android等其他...

    第二章 J2ME的开发流程.ppt

    本章主要关注J2ME的开发流程,包括项目的开发步骤、MIDlet套件的构建以及OTA(Over-The-Air)的下载方式。 ### 1. J2ME开发流程 J2ME项目的开发流程一般分为以下几个步骤: 1. **编写源程序**:开发者使用Java...

    如何将MIDlet应用移植到BlackBerry

    对于已经熟悉Java ME(即J2ME)开发并拥有MIDlet应用的开发者来说,将这些应用移植到BlackBerry平台是一个值得考虑的选择。BlackBerry平台同样基于Java,支持J2ME标准,这为MIDlet应用的移植提供了一条较为平滑的...

    j2me 中文教程 开发环境 J2ME语言

    第十章“MIDlet 的开发流程与部署”介绍了如何真正完成你的程序并打包发往设备运行。 第十一章“搭建开发平台—WTK”主要讲述J2ME 新手最常使用的开发工具Wireless Toolkit (WTK)。从WTK 的安装、到MIDlet 项目的...

    MIDP_2_0_Signed_MIDlet_Developers_Guide(2.0版本)

    根据提供的文件信息,本文将对《MIDP_2_0_Signed_MIDlet_Developers_Guide(2.0版本)》中的关键知识点进行详细解读。...通过学习这些内容,开发者可以更好地理解如何在MIDP 2.0环境下对MIDlets进行安全开发和部署。

    用Ant实现Java项目的自动构建和部署

    在Java开发过程中,自动化构建和部署是提高效率的关键步骤。Ant作为Apache软件基金会的一个开源项目,是一款强大的构建工具,能够帮助开发者实现这一目标。本文将深入讲解如何利用Ant来实现Java项目的自动构建和部署...

    j2me手机游戏开发技术详解

    **2.3.7 MIDlet的开发流程** 遵循一套标准的开发流程可以提高开发效率和质量。 **2.4 设置WTK的工程属性和开发环境** 合理设置WTK的各项属性,可以提高开发效率。 **2.5 WTK的模拟器使用** 熟练掌握WTK模拟器的...

    j2me移动开发环境配置视频

    总的来说,J2ME移动开发环境的配置涉及安装JDK、Java ME SDK,创建项目,编写MIDlet代码,以及部署和测试应用。熟悉这些步骤将帮助开发者快速进入J2ME的开发世界,构建适用于3G网络环境的移动应用程序。

    J2ME开发大全2J2ME开发大全2

    六、应用开发流程 1. 设计:确定应用的目标平台、功能和UI布局。 2. 编码:使用Java语言编写MIDlet类和其他必要组件。 3. 测试:在WTK或其他模拟器上运行和调试代码。 4. 签名:为了在某些设备上部署,需要对MIDlet ...

    Java ME实用详解——用Eclipse进行移动开发【源码】

    Java ME(Micro Edition)是Java平台的一个重要分支,主要用于...通过以上步骤,开发者可以全面了解并实践Java ME在Eclipse环境下的开发流程。无论是初学者还是有经验的开发者,都能从中受益,掌握移动开发的基本技巧。

    J2ME开发详解工具篇 pdf

    **正文** ...总结来说,J2ME开发详解工具篇涵盖了从设置开发环境到创建、测试和优化MIDlet应用的整个流程。通过学习和实践,开发者可以掌握J2ME开发的精髓,创造出能在各种移动设备上运行的应用程序。

    Nokia手机S40平台手机开发环境的搭建的过程共53页

    9. **部署与发布** - 通过蓝牙、红外、数据线或网络将JAR文件传输到实际的S40设备上进行测试。 - 通过诺基亚的Ovi Store或其他分发渠道发布应用,供用户下载。 10. **优化与性能调整** - 根据S40设备的性能限制...

    JavaME开发配置

    7. **打包和部署**:完成测试后,将MIDlet Suite打包成JAR文件,然后可以通过蓝牙、红外或数据线将其传输到目标设备上进行实际部署和测试。 除了基础的配置,开发者还可以利用WTK提供的各种工具进行性能分析、内存...

    J2ME开发教程及笔记

    - **NetBeans**和**Eclipse**:集成开发环境,支持J2ME项目创建、调试和部署。 - **MIDP Emulator**:模拟器用于在桌面系统上测试J2ME应用。 ### 6. J2ME应用程序结构 J2ME应用通常包含两部分:MIDlet Suite和...

    手机开发环境配置.doc

    【手机开发环境配置】主要涉及的是使用Eclipse作为开发平台,特别是针对移动应用,如J2ME...通过这种方式,开发者能够在Eclipse环境中进行完整的手机应用开发流程,包括编写代码、测试和调试,直至最终打包和签名发布。

    精通J2me嵌入式开发-环境配置.pdf

    此代码示例展示了如何创建一个基本的J2ME应用,包括UI组件的初始化、显示控制以及命令监听机制,是理解J2ME开发流程的基础。 以上内容涵盖了从J2ME开发环境的搭建到基本应用的创建和测试的全过程,对于初学者来说,...

    J2ME开发大全,适用于初学者

    签名过程验证了MIDlet的身份,确保其安全可靠。完成签名后,MIDlet可以通过OTA(Over The Air)下载或通过蓝牙、红外等方式在设备间传输。 ### 9. 性能优化 由于J2ME运行在资源受限的设备上,性能优化至关重要。这...

Global site tag (gtag.js) - Google Analytics