WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章J2ME技术J2ME基础J2ME开发教程

J2ME开发教程
作者:佚名  来源:wireless.java.sun.com  发布时间:2005-10-26 1:06:24
suite中。最后,src目录存放你的MIDlet的源程序代码。如果你的代码中使用了Package,src此时为Package机制的起始目录。例如,对于类users.Root 的源码应该被存放为:src/users/Root.java

当你使用KToolbar编译一个项目后, J2MEWTK又新建了几个子目录,如下图所示:

Project directory structure after building


如视,J2MEWTK 创建了classes, tmpclasses, 和 tmplib这三个子目录,对于大多数时候,你可以不用管这些目录的作用,他们是被J2MEWTK内部使用的。

创建一个MIDlet


让我们先写一个简单的MIDlet程序,作为我们MIDP开发的开始。首先我们需要一个文本编辑器,选择什么样的编辑器当然取决于你。 Unix系统下程序员流行使用emacs 或 vi。某些Windows 开发者使用笔记本(textpad), 但也许你像更专业一些,我个人喜欢使用jEdit,它运行在Java 2环境中,这样我可以在Windows 2000和Mac OS X 系统上使用相同的编辑器。

当你选定编辑器,请敲入下述代码(你也可以从这里下载):

import javax.microedition.lcdui.*;import javax.microedition.midlet.*;public class HelloMIDletextends MIDlet implements CommandListener {private Form mMainForm;public HelloMIDlet() {mMainForm = new Form("HelloMIDlet");mMainForm.append(new StringItem(null, "Hello, MIDP!"));mMainForm.addCommand(new Command("Exit", Command.EXIT, 0));mMainForm.setCommandListener(this);}public void startApp() {Display.getDisplay(this).setCurrent(mMainForm);}public void pauseApp() {}public void destroyApp(boolean unconditional) {}public void commandAction(Command c, Displayable s) {notifyDestroyed();}}
以文档名为HelloMIDlet.java 将源代码保存在本项目的 src 子目录下。在我的电脑上,该文件被存放为:c:J2mewtkappsHelloSuitesrcHelloMIDlet.java。

接着,点击KToolbar的Build按键,J2MEWTK将编译你的项目。如果这时有任何编译时错误发生,你会在KToolbar的文本输出区上看到具体的错误输出。修改这些错误直到项目被成功编译。

现在,一切就绪开始测试你的MIDlet suite。点击Run按键。你会发现设备模拟器将会弹出,请参考下图:

HelloSuite running on the emulator


模拟器显示当前MIDlet suite中MIDlet列表。在本例中,我们只有唯一的一个MIDlet。我们这里看到名字为HelloSuite,运行的class 文件是HelloMIDlet。如果你想了解具体的对应关系,请单击KToolbar中的Settings....按键,然后点击MIDlets 标签,你会看到该项目中MIDlet 的列表。

现在,回到模拟器, 点击Launch下面对应的soft button,开始执行MIDlet。这时屏幕如下图所示。点击Exit 退出MIDlet,然后关闭模拟器窗口或是按一下ESC键,来结束我们的测试。

HelloMIDlet running on the emulator

这里我们使用的D馄魇?B>DefaultGrayPhone。J2MEWTK 还包括其他好几个模拟器:DefaultColorPhone,Motorola_i85s等。你可以使用其他模拟器来测试一下我们的HelloMIDlet ( 注意,你要先安装Palm OS Emulator(POSE),然后MIDP for PalmOS 模拟器才可以工作,POSE可以在这里下载。) 要使用其他的模拟器只需在KToolbar的device列表框中选择所需设备,然后再次点击Run 键即可。

你是不是已经玩腻了HelloMIDlet,试着运行一下J2MEWTK本身附带的示例,你可以试试demos, games, 和 photoalbum 这些简单的示例.

底层一瞥


好,现在我们已经玩了好一会了,让我们坐下来谈谈J2MEWTK到底替我们做了那些工作。虽说没有什么复杂的底层机制,但J2MEWTK确实替我们做了好几项繁琐的步骤,使得工作只是轻而易举的按几下按键。

首先,当我们按下Build 键时发生了什么? J2MEWTK 首先找到src目录下所有.java文件并编译他们。然而由于我们的源文件需要在MIDP 环境下编译而不是通常的J2SE 环境,这就使得编译过程有其特殊之处。你可以这样理解,MIDlet使用的java.lang.System 类是与J2SE中相应的API是不同的。 也就是说,当J2MEWTK 编译MIDlet时,使用的是MIDP版的 java.lang.System类文件。

当然你也可以手工达到同样的效果,即在命令行窗口中使用javac命令并添加-bootclasspath 参数。但使用J2MEWTK就显得简单多了。

除了编译外,生成的MIDP类文件还必须先被预审核(preverified),然后他们才能MIDP设备上运行。你也许会记起J2SE有一个bytecode verifier 可以在载入.class文件之前先检查他们。在MIDP世界里, 审核(verification)分为两步。首先,类在编译时被预先审核,然后当设备载入类时进行第二次审核。

这里J2MEWTK又一次简化了我们的工作,当然你也可以使用命令行程序preverify 来手工完成这一步骤,但使用J2MEWTK使我们不需考虑这些细节。

最后,MIDlet被打包到MIDlet suite中以便于发布在实际设备上,也就是说把class文件,资源文件打包为一个Jar文件并在该Jar文件的清单(manifest)文件中添加一些额外的信息。 这里,J2MEWTK又一次发挥了它的职责。如果我们想要给MIDlet suite打包,只需要在菜单中选择Project | Package 命令, 这样.jad 文件和.jar 文件就轻而易举的在该项目的bin 子目录中生成了。

上一页  [1] [2] 

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码