J2ME开发环境搭建 之 Sun WTK__教程 |
|
日期:2007-5-20 1:26:24 人气:65 [大 中 小] |
|
|
|
public HelloWorld() {
super();
display = Display.getDisplay(this);
}
protected void startApp(){
Form form = new Form("Hello World!");
form.append("Welcome to J2ME world!");
display.setCurrent(form);
}
protected void pauseApp() {
}
protected void destroyApp(boolean arg0){
}
}
完成后保存java文件,单击WTK的生成键,由WTK为您进行编译,如果有错误生成,则会在控制台中提示。
根据提示信息对MIDlet文件进行修改,再重新生成,直到编译成功。对编译成功的程序,执行运行,可以看到弹出一个手机模拟器,显示出我们的第一个Hello World程序,如果执行有错,依然会在控制台中给出提示信息。
开启旧项目
当我们下一次重新启动WTK的时候,选择打开项目,WTK会把apps目录下的应用项目全部显示出来,包括我们刚刚建立的Hello World,选择载入后,就能够重新运行了。
第四节执行MIDlet,打包和混淆
执行MIDlet
除了我们刚刚介绍的在KToolbar中执行一个程序,我们还可以在程序组中直接选择Run MIDP Application…, 这是就可以在弹出的对话框中选择其它路径中的JAD程序运行了。
当我们直接选择运行时,需要注意两个问题:
1. JAD描述文件与其指定的JAR档案文件在同一个目录下。
2. 运行目录路径中不要包含中文。
打包成JAR
KToolbar的生成功能只能帮我们将源代码编译并预先审核,并不会帮我们产生JAR文件,而我们如果要发布MIDP程序,除了JAD描述文件,JAR是必须的,这就需要打包。
在KToolbar选中项目 —— 包 —— 产生包,可以把整个程序,包括资源文件打包成JAR文件。形成的JAR保存在apps\HelloWorld\bin目录下。
包混淆
在上面的操作中,我们看到,除了“产生包”,另外还有一个“产生混淆包”选项。所谓混淆,是为了防止别人反编译后读取源代码,将程序(.class文件)进行混淆,经过混淆的Java Byte Code可以增加别人反编译的时间,即便反编译后,也会因为类名变化成没有意义的符号而增加理解源程序的难度。更进一步,由于混淆大大缩短的源程序中类,成员变量以及方法名称,导致生成的JAR体积变小!
目前一般比较常用的混淆器是两款开源产品:ProGuard和RetroGuard,本文采用前者作为示例,你可以在http://proguard.sourceforge.net/ 上获取。
把刚刚获取的ProGuard解压,在解压目录的lib子目录中找到proguard.jar文件,将其拷贝到WTK安装目录的bin下,再执行混淆包。这是我们将会发现apps\HelloWorld\bin下的JAR大小变小了,反编译后的各个名称也变得毫无意义了。
第五节 WTK中其它值得关注的功能
到这里,我们就如何用WTK创建,执行,打包,混淆一个MIDP项目做了比较详细的介绍。除了以上所说各点,WTK(2.2版)还提供诸多实用功能。这些都可以在编辑 —— 偏好中找到。
例如,当我们需要监视程序性能的时候,可以选中“启用内存监视器”,在下一次模拟器执行的时候,我们就可读出程序运行时的内存消耗均值,消耗峰值以及具体产生对象的个数和使用情况。
除了内存监视,我们还可以执行网络监视,设定存储区大小和堆栈大小,设定安全签名和蓝牙操作属性,以尽可能模拟手机实际运行环境,这些功能在进阶开发中都是非常实用的。
注意:
虽然WTK为我们提供了各种工具来模拟手机运行环境,但在实际开发中,由于受到手机硬件,网络条件等诸多限制,MIDP的真实性能在不同机器上会出现不同的反应,与WTK中的表现可能差别更大。 |
|
出处:本站原创 作者:佚名 |
|
|