3 使用Eclipse进行无线开发
创建工程
在完成了环境搭建后,我们就可以在Eclipse中用我们所熟悉的方式开发无线应用程序。下面让我们完成一个经典Hello World程序。这里,我们选择使用Sun WTK 2.2作为模拟器。
在Eclipse工作台上的新建选项中,选择J2ME Midlet Suite,首先创建一个MIDP Suit。
在下一步中,我们可以看到有多种模拟器设备可供选择,选定“J2ME Wireless Toolkit 2.2 MIDP 2.0 Platform”后,继续下一步,直至完成。
此时,在包资源管理器中,Hello World套件项目已经被建立起来,我们注意到,Eclipse为我们自动绑定了J2ME library运行库,并创建了jad等配置文件。
创建MIDlet文件
完成项目创建后,让我来创建一个MIDlet类文件,它是整个套件的入口文件。也是Hello World的关键类。
选择J2ME Midlet之后,我们可以看到系统自动继承了MIDlet超类,请确保三个默认方法复选框被选中,输入类名,完成创建。
打开刚刚创建的Hello World,我们发现Eclipse已经自动帮我们生成了程序主体,继承方法以及一些注释。
如此之多的重复工作已经被Eclipse完成,以至于我们只需要在相应的方法中填写自己的实现过程就可以了。
首先在Hello World代码中导入界面类import javax.microedition.lcdui.*;
然后,我们仅仅需要用以下代码覆盖原先的构造函数:
public HelloWorld() {
super ();
// TODO 自动生成构造函数存根
Form form = new Form("Hello World");
form.append("Welcome to J2ME World!");
Display.getDisplay(this).setCurrent(form);
}
如此简单的几步,第一个J2ME就完成了!
执行MIDlet
在Hello World项目上单击右键,选择“运行…”,
在弹出对话框中,在Wireless Toolkit Emulator中新建一个配置,指定刚刚Hello World为入口文件,应用设置,最后运行。
可以看到,Eclipse自动启动了WTK的模拟器,显示出了Hello World的欢迎界面!
打包与混淆
打包,就是为套件生成jar文件,用来发布项目。右键单击目标项目,可以在J2ME选项中选定Create Package,生成jar包。
混淆,就是为了保护版权,增加别人反编译阅读源代码的难度;同时可以减少jar包的体积。在J2ME选项中也能够找到创建混淆包的选项。但首先,需要指定当前系统中混淆器的安装位置。
我们这里采用了开源免费的Proguard3.0.1作为混淆器。在“首选项 / J2ME / packaging / obfuscation”中,通过浏览指定Proguard3.0.1的安装(解压)路径。
应用保存设置之后,就可以成功的创建混淆包了。
注意:
很多初次使用的朋友会发现即便指定路径之后,依然不能顺利创建混淆,并且往往得到类似下面的警告信息。
出现这个错误的原因与JDK路径有关。我们在安装了JDK之后(以1.4.2为例),系统环境变量中存在两种JDK,一种是JDK SDK,一种是运行时环境(runtime)。Eclipse在解压安装时选择的是后者,而启动Proguard3.0.1需要的是前者。
修复这个问题很简单,在“首选项 / java / 已安装的JRE”中把你的JRE从指向运行时更改为指向SDK(即JDK的安装目录)
此时JRE将拥有完整JDK库文件,再次运行创建混淆,我们会发现在Hello World子目录deployed中包括了HelloWorld.jar,HelloWorld_base.jar, HelloWorld_base_obf.jar。他们分别是混淆后,混淆前等不同版本的jar包。