J2ME与MIDP开发(2)

J2ME与MIDP开发(2)[@more@]大家是不是心里都痒痒的了,好,让我们开始编写一个非常简单的 MIDlet吧,这个 MIDlet将创建一个带有一则消息的文本框。我们还要添加一个命令按钮用于退出这个 MIDlet。

一、编写 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-NameMIDlet程序包的名称。例如“Game Pack”
MIDlet-VersionMIDlet的版本号
MIDlet-VendorMIDlet的创建者或提供商
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-URLJAR文件的 URL
MIDlet-Jar-SizeJAR文件的大小
MIDlet-Data-Size持久数据存储必需的最小字节数
MicroEdition-ProfileMIDlet需要哪一种 J2ME简表
MicroEdition-ConfigurationMIDlet需要哪一种 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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值