JavaME开发流程详解

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

流程

工具

输入

输出

编译 javac.exe编译 源文件(*.java) 未混淆的类文件(*.class)
混淆 第三方提供的工具 未混淆的类文件(*.class) 混淆后的类文件(*.class)
预审 preverify.exe预审核 混淆后的类文件(*.class) 经过预先审核的类文件(*.class)
打包 jar.exe打包 经过预先审核的类文件(*.class) 包文件(*.jar)
编写描述文件 文本编辑工具 描述文件(*.jad)
安装运行

 传输工具(IR/BT/数据线/OTA)

 包文件(*.jar)和描述文件(*.jad)

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

下面将会介绍每个步骤。当利用集成开发环境(诸如JBuilder、NetBeans、Sun ONE Studio、Eclipse等)时,这些工具不仅可以很快的帮我们建立起代码的主干,而且可以帮助我们自动的完成上面的大部份工作(关于集成开发环境的利用见后面的章节)。在利用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程序(Applet、Servlet)是不同的。因为class在传输过程中容易损坏或是被篡改,传统的Java程序在运行前,都在本地机器上对.class进行Byte Code的审核。而对于手机这样的资源有限设备而言,在手机上进行大量的此类的审核是极为浪费资源(如占用CPU的时间、消耗电力等)。因此,我们必须先在PC机上使用preverify.exe进行一部份预选审核工作。这样,在手机上进行的审核工作就大量减少了。

打包与编写描述文件:

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

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

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

  • 使用数据线,将PC与手机相连,下载文件
  • 使用红外线
  • 使用蓝牙
  • 使用OTA空中下载(利用短信/WAP)