一、编写 Java源代码
创建一个新目录来保存你以后编写的MIDlet,例如 c:midlets,在这个目录里再创建一个叫myMIDlet的目录,使用任何文本编辑器创建一个名为 simpleMIDlet.java的文件并输入下面这一段 Java源代码。把这个文件保存在c:midletsmyMIDlet目录 (或者任何你选择的目录)。
代码段1
simpleMIDlet.java import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class simpleMIDlet extends MIDlet implements CommandListener { private Display display; // 引用MIDlet的Display 对象 private TextBox tbxMain; // Textbox 显示一条消息 private Command cmdExit; // 设定按钮用于退出MIDlet // MIDlet构造程序 public simpleMIDlet() { display = Display.getDisplay(this); cmdExit = new Command("Exit", Command.SCREEN, 1); tbxMain = new TextBox("Simple MIDlet", "Welcome ", 50, 0); tbxMain.addCommand(cmdExit); tbxMain.setCommandListener(this); } // 被应用程序管理器调用来启动MIDlet。 public void startApp() { display.setCurrent(tbxMain); } // 一个必要的方法 public void pauseApp() { } file://一个必要的方法 public void destroyApp(boolean unconditional) { } file://检查一下是否选择了退出命令 public void commandAction(Command c, Displayable s) { if (c == cmdExit) { destroyApp(false); notifyDestroyed(); } } } |
此时,先不必担心每行代码是做什么用的,把注意力放在开发这一整个环节中。
二、编译并预验证(preverify)
现在你必须编译这个 java源文件并且 preverify生成的.class文件。1.编译源代码进入命令行形式,进入你保存文件的项目目录,使用下面的命令编译程序。使用下面的命令编译程序。
avac -bootclasspath c:j2memidp-fcsclasses simpleMIDlet.java |
选项 - bootclasspath C: j2memidp - fcsclasses指定了 Java自举(启动)类文件目录。我们必须自己指向midp类,否则javac会使用默认的JDK类库去编译MIDlet程序。不出问题的话,就能顺利地编译simpleMIDlet.java生成simpleMIDlet.class文件 (默认情况下,生成的.class位于 Java源文件所在的目录)。2.预验证类文件。
preverify -classpath c:j2memidp-fcsclasses;. -d . simpleMIDlet |
选项" -classpath C:j2memidp-fcsclasses;." 指定了到哪里去寻找用于预验证的.class文件。这包括需要用来做验证处理的 MIDP类 (通过 c:j2memidp-fcsclasses指定 )和你的类文件,它位于当前目录 (就是"."指定的)。选项"-d." 告诉预验证器把验证过的类文件放在什么地方。这一点"." 指当前目录,即原始的类文件相同的位置。注意:前面的 preverify命令行选项将用一个新的、预验证过的类文件覆盖原先的类文件。你可以分两个目录,一个用来保存通过编译的类文件,另一个用来保存通过预验证创建的类文件。但是没有经过预验证的类文件是不能被应用程序管理器载入的。3、运行 MIDlet我们现在准备在移动设备模拟器中运行 MIDlet,如果你现在还处在命令行方式,请输入
midp firstMIDlet |
三、封装MIDlet
下面我想谈谈封装MIDlet的相关知识,即介绍一下 MIDlet套件以及Java档案和应用程序描述器文件,为了说明方便,我们还将写一个MIDlet程序并利用上面介绍的那个MIDlet程序,并创建JAR文件和JAD文件来封装这些程序。我们还要看着如何使用 Java程序包改变我们的开发过程。最后你将学习如何从一个Web服务器上访问 MIDlet。
MIDlet套件虽然把MIDlet封装进 Java档案文件(JAR)并不一定必要,但这是发布 J2ME/MIDP应用程序最常见的方法。MIDlet套件是一个MIDlet中所有的文件以及作为 MIDlet一部分的必需的资源的集合。MIDlet套件由以下几部分组成:1、附在JAR文件中的 Java类文件, 2、描述 JAR文件内容的清单文件 3、附在 JAR文件中的资源(如图象)和Java应用程序描述符文件(JAD) 4、应用程序管理器应用程序管理器是一个移动设备上的软件程序,这个应用程序与具体的设备有关,并且由设备的生产商实现。它负责安装、运行以及从设备上删除 MIDlet,而提供错误处理支持。这个应用程序管理器同时还提供一个可选界面,允许用户启动、终止以及删除 MIDlet。
Java档案文件一个商品化的、封装过应用程序通常由许多文件构成。除了 Java类以外,其他文件诸如图像和应用程序数据即通常所说的资源,也可能是这个程序包的一部分。你把所有这些信息捆绑进一个整体,就称为 JAR文件。除了类和资源文件,一个 JAR文件还包括描述 JAR内容的清单文件。清单文件名为 manifest.mf,储存在 JAR文件本身中,下面这张表中列出定义在这个清单文件中的所有可用的属性。
表 1 | |
属性
|
用途
|
MIDlet-Name | MIDlet程序包的名称。例如“Game Pack” |
MIDlet-Version | MIDlet的版本号 |
MIDlet-Vendor | MIDlet的创建者或提供商 |
MIDlet-Icon | 应用程序管理器把这个图标与 MIDlet-Name相关联,这是一个图形文件,以 PNG图象格式储存。 |
MIDlet-Description | 描述 MIDlet的文本 |
MIDlet-Info-URL | 可能提供更多MIDlet和/或供应商信息的 URL |
MIDlet- | 这个属性包括三段信息: ??MIDlet名称 ??用于这个 MIDlet的图标(可选) ??应用程序管理器将调用来加载这个 MIDlet的类名 在我们的“ Game Pack”例子中,有两个条目: MIDlet-1: KOF, /images/kof.png, kof.kofMIDlet MIDlet-2: Golf, /images/golf.png, golfMIDlet |
MIDlet-Jar-URL | JAR文件的 URL |
MIDlet-Jar-Size | JAR文件的大小 |
MIDlet-Data-Size | 持久数据存储必需的最小字节数 |
MicroEdition-Profile | MIDlet需要哪一种 J2ME简表 |
MicroEdition-Configuration | MIDlet需要哪一种 J2ME配置 |
这些属性并不是全部都需要,可是,没有下面列出的这六个,应用程序管理器就会拒绝加载这个 JAR。 MIDlet-Name MIDlet-Version MIDlet-Vendor MIDlet- MicroEdition-Profile MicroEdition-Configuration 这里有一个简单的清单文件的例子: MIDlet-Name: KOF2001 MIDlet-Version: 1.0 MIDlet-Vendor: NeoRage Corporation Inc. MIDlet-1: kof, /images/kof.png, kof.kofMIDlet MicroEdition-Profile: MIDP-1.0 MicroEdition-Configuration: CLDC-1.0
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7839366/viewspace-920490/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7839366/viewspace-920490/