| | | | | | | [文章信息] | | | 作者: | PETERY | | 时间: | 2003-08-23 | | 出处: | 论坛 | | 责任编辑: | 方舟 | |
| [文章导读] | | | 利用手机与别人沟通成了我们生活的一部份...... | |
| |
|
| | | |
|
|
|
|
|
MIDlet程序结构
在手机上执行的程序我们统称MIDlet,其程序结构很简单,与大家熟悉的Applet结构有异曲同工之妙。
每一个MIDlet程序都必须继承自javax.microedition.midlet.MIDlet类别,并实做三个函式,它们分别是:
protected void startApp() protected void pauseApp() protected void destroyApp(Boolean unconditional)
而一个MIDlet程序的起始与结束之流程我们以下图来表示:

编写并编译MIDlet
请先到您的Motorola J2ME SDK安装目录下的demo\midlets目录底下新建一个名为HelloMIDlet.java的文件,其内容为:
HelloMIDlet.java import javax.microedition.lcdui.*; import javax.microedition.midlet.*;
public class HelloMIDlet extends MIDlet { HelloMIDlet() { }
protected void startApp() throws MIDletStateChangeException { }
protected void pauseApp() { }
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException { } }
在demo\midlets目录之中您会看到一个名为compileAll.bat的批处理文件,前面有提到,这个批处理文件除了可以帮助您编译所有内附范例程序之外,还可以简化您自己所编写的MIDlet之编译流程。 请在命令列视窗输入: compileAll HelloMIDlet.java 如果成功编译,屏幕上输出的结果如下图所示:

从屏幕上的输出,您可以发现,要让MIDlet可以在手机上执行,大体上还是要经过两个动作(与Spotlet相似),分别是编译(compiling)以及预先审核(Preverifying)。
从这个简短的MIDlet制作流程里头,相信大家可以发现,比起纯粹用Sun的CLDC编写能在KVM上执行的Spotlet要简单上许多。原因是compileAll.bat这个批处理文件帮我们做掉大部分dirty work。 那幺,如果您写好的程序并非放在demo\midlets目录之中,是否就无法编译了? 从compileAll.bat里头,我们可以发现它帮我们完成上述两项工作的指令。如果我们写好的程序放在demo\midlets目录以外的地方,您可以执行下面的指令,您仍然可以成功地制作MIDlet: (我们假设您的Motorola J2ME SDK安装在D:\MotoSDK目录之中,并将您自行编写的HelloMIDlet.java置于d:\jdk1.3.0_01\my目录之中。同时我们假设您在d:\jdk1.3.0_01\my目录底下执行下面指令。) 编译:
javac -O -bootclasspath d:\MotoSDK\lib HelloMIDlet.java
注意: -bootclasspath指向类函数库的所在位置。
预先审核:
d:\MotoSDK\bin\preverifier -classpath d:\MotoSDK\lib;. -d . HelloMIDlet
注意:
1 . -classpath指向类函数库的所在位置,也要指向我们所编写的MIDlet所在的位置。
2 .–d指向您希望预先编译类文件产生之后所放置的路径,如果写"."表示本目录,会覆盖掉原先未经过预先编译的类文件。如果您没有指定,则预设值为".\output"目录。
当然,如果您嫌自己手动操作很麻烦,您可以将compileAll.bat复制到其它目录之中,并更改其编译指令与预先审核指令之中和类函数库有关的相关设定即可。
提到compileAll.bat,顺便向各位读者说明一下,在前面有提到,compileAll.bat可以帮助您编译所有位于demo\midlets目录下的范例程序,您只要在命列列下直接输入: compileAll即可。compileAll.bat会自动当您编译的package有以下几项:
com.mot.j2me.midlets.bounce com.mot.j2me.midlets.imagetests com.mot.j2me.midlets.paddleball com.mot.j2me.midlets.scribble com.mot.j2me.midlets.tests com.mot.j2me.midlets.tutorials
如果您希望compileAll.bat自动帮您编译其它package底下的程序,请您开启compileAll.bat,修改其COMPILECLASS环境变数的设定即可。
|
|
|
|
|
|
|
|