J2ME学习之二:搭建移动应用开发环境
一 J2ME开发
高级的MIDP应用程序开发工具能够帮助开发人员简化J2ME开发过程,包括Sun提供的官方开发工具WTK和手机厂商提供的专属SDK,不管是什么SDK,我认为,对于开发来说,一般针对的是MIDP层,对于运行来说,模拟器一般实现了KVM和CLDC层。
J2ME Wireless Toolkit:WTK 的全称是Sun J2ME Wireless Toolkit —— Sun的无线开发工具包。这一工具包的设计目的是为了帮助开发人员简化j2me的开发过程。该工具箱包含了完整的生成工具、实用程序以及设备仿真器,目前的版本是2.5.1。
手机厂商SDK:目前各大手机厂商往往把WTK经过自身的简化与改装,推出适合自身产品:
a. Sony Ericsson J2ME SDK 2.2.1
b. Motorola J2ME SDK 5.1.2
c. Nokia J2ME SDK 3.0
d. Samsung J2ME SDK
二 WTK搭建过程
1) 安装j2sdk-1.5.0
2) 下载WTK包 http://java.sun.com/products/sjwtoolkit/ 2.5.1 并点击EXE安装
3) 假如WTK安装到C:\WTK2.5.1目录下,下面就可以到该目录下开始你的WTK开发之旅了,此处我们直奔主题,到Sun Java Wireless Toolkit for CLDC 用户指南 [HTML]中开始照此编写第一个程序
三 运行一个演示的应用程序
1) 在 Microsoft Windows 中,选择“开始”>“程序”> "Sun Java Wireless Toolkit 2.5.1 for CLDC" > "Wireless Toolkit 2.5.1"
2) 接下来,单击“打开项目”按钮,打开一个演示应用程序。将看到一个包含所有可用应用程序的列表。从中选择一个应用程序,然后单击对话框中的“打开项目”按钮。
3) 打开该应用程序后,只需按下“运行”按钮。仿真器将显示正在运行示例应用程序。
4) 这时候就会出现下列模拟器的运行环境,选择一个游戏进行。
5)演示应用程序的所有源代码都可以在工具包的 apps 目录中找到。apps 目录中的每个演示都有自己的项目目录。在项目目录内部,源文件位于 src 目录中。例如,在 Windows 上,games 演示的源代码位于 toolkit\apps\games\src。
四 开发第一个J2ME程序TinyMIDlet
1) 使用"Wireless Toolkit 2.5.1”生成新项目TinyMIDlet。
2)使用编辑器编辑toolkit\apps\Tiny\src\TinyMIDlet.java(参见附件1),其中toolkit为工具箱目录。
3) 编辑完保存后单击生成按钮,工具箱开始编译并进行预校验,如果没有错误会出现生成完毕。
4) 单击运行按钮运行刚才生成的程序。
五 J2ME集成开发环境eclipse与eclipseME插件
1) 下载eclipse开发环境 (www.eclipse.org目前使用的是eclipse-java-europa-win32版本)。
2) 下载eclipseME插件(sourceforge或者www.eclipseme.org上有最新的版本)。
3) 安装eclipseME插件。(安装之前一定要保证JDK为1.5的,在path中设好1.5的bin路径,否则eclipseME将显示不了)
4) 可以打开eclipse的帮助,发现eclipseME的帮助,可以阅读该帮助照着做,下面步骤从该帮助而来。
5) 设置eclipseME和WTK2.5.1集成。
Windows—>Preference->J2ME->Device Management
然后点击import导入与WTK2.5.1建立联系,选择WTK2.5.1安装的根目录,
C:\WTK2.5.1,然后点击refresh按钮
点击Finish按钮导入设备,然后选择导入的某个设备进行调试程序,这里选择默认。
6) 上面已经做好了使用eclipse+eclipseME插件开发MIDlet程序的基本条件了,你可以开发一个简单的例子试试。
六 使用Eclipse开发J2ME项目EclipseMIDlet和EclipseMIDlet.java
1) 创建j2me项目
2)输入项目名称位置等
3) 选择设备名称
4)查看已生成的项目
5)创建一个新的midlet ----EclipseMIDlet.java
6)输入以下程序EclipseMIDlet.java(参见附件2)。
7)修改调试设置如下:
8)运行程序(菜单Run->open debug dialog->双击wireless toolkit emulator->命名为EclipseMidlet->在Excuteable中选中Midlet填入要执行的Midlet的名字->点击Debug.)
9)结果如下:
附件1:TinyMIDlet.java
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
public class TinyMIDlet extends MIDlet
implements CommandListener {
public void startApp() {
Display display = Display.getDisplay(this);
Form mainForm = new Form("TinyMIDlet");
mainForm.append("Welcome to the world of MIDlets!");
Command exitCommand = new Command("Exit", Command.EXIT, 0);
mainForm.addCommand(exitCommand);
mainForm.setCommandListener(this);
display.setCurrent(mainForm);
}
public void pauseApp () {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c, Displayable s) {
if (c.getCommandType() == Command.EXIT)
notifyDestroyed();
}
}
附件2:EclipseMIDlet.java
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
public class EclipseMIDlet extends MIDlet
implements CommandListener {
public void startApp() {
Display display = Display.getDisplay(this);
Form mainForm = new Form("EclipseMIDlet");
mainForm.append("Welcome to the world of MIDlets!");
Command exitCommand = new Command("Exit", Command.EXIT, 0);
mainForm.addCommand(exitCommand);
mainForm.setCommandListener(this);
display.setCurrent(mainForm);
}
public void pauseApp () {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c, Displayable s) {
if (c.getCommandType() == Command.EXIT)
notifyDestroyed();
}
}
来自:http://blog.csdn.net/cz_hyf/archive/2007/10/12/1822067.aspx