完整的
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 的减少都意味着可以获得更多的空间。混淆器都是第三方软件开发商提供的,许多都是开源的,可以免费使用。常见的混淆器见下表:
由于 class 文件格式透明的缘故, java 文件很容易被反汇编。因此,如果你不希望别人掌握你的源代码的话,你一定要进行混淆( obfuscate )。所谓混淆,就是利用工具,将方法名、类名改成没有实际意义的特定的字符及代号,增加阅读的难度。这样就充分的保护了我们自己的知识产权。而且混淆还有个意想不到的好处,就是减少程序的大小。这是由于混淆器将我们设定的方法名、类名变成没有意义的短字符或代码,无形中减少了程序的大小。对于手机程序设计来讲尤为重要,每 K 的减少都意味着可以获得更多的空间。混淆器都是第三方软件开发商提供的,许多都是开源的,可以免费使用。常见的混淆器见下表:
名称
|
地址
|
特点
|
JODE
|
开源
| |
ProGuard
|
开源
| |
RetroGuard
|
开源,中国移动百宝箱强制使用
| |
DashO
|
商业软件,一般专业公司使用,昂贵
| |
ZKM
|
商业软件可试用
| |
JBuilder
|
集成开发环境中内附混淆功能,但
JBuilder
的价格也不便宜。
|
预审核:
在完成编译后,我们必须要对 *.class 文件进行预审核,这和传统的 Java 程序( Applet 、 Servlet )是不同的。因为 class 在传输过程中容易损坏或是被篡改,传统的 Java 程序在运行前,都在本地机器上对 .class 进行 Byte Code 的审核。而对于手机这样的资源有限设备而言,在手机上进行大量的此类的审核是极为浪费资源(如占用 CPU 的时间、消耗电力等)。因此,我们必须先在 PC 机上使用 preverify.exe 进行一部份预选审核工作。这样,在手机上进行的审核工作就大量减少了。
打包与编写描述文件:
MIDP 可执行文件后缀名为 jar 。利用 jar file.class 就能将通过预审核的 *.class 文件,打包成 MIDP 认可的可执行文件。后缀名为 jad 的文件是 jar 文件的描述文件, jad 文件详细介绍见第二节。
MIDP 可执行文件后缀名为 jar 。利用 jar file.class 就能将通过预审核的 *.class 文件,打包成 MIDP 认可的可执行文件。后缀名为 jad 的文件是 jar 文件的描述文件, jad 文件详细介绍见第二节。
在仿真器或手机上安装运行:
有了 jar 及 jad 文文件后,我们就可以把它们放到仿真器或手机上运行了。至于如何把它们放到手机上,根据手机的功能不同,有如下方法可以选择:
- 使用数据线,将PC与手机相连,下载文件
- 使用红外线
- 使用蓝牙
- 使用OTA空中下载(利用短信/WAP)