赛迪网 > IT技术 Java > (最新更新)Java基础
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

使用J2ME与MIDP进行手机开发的全工略 (2)

发布时间:2006.04.03 12:18     来源:www.51cto.com    作者:wayne_z

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

一、编写 Java源代码

创建一个新目录来保存你以后编写的MIDlet,例如 c:\midlets,在这个目录里再创建一个叫myMIDlet的目录,使用任何文本编辑器创建一个名为 simpleMIDlet.java的文件并输入下面这一段 Java源代码。把这个文件保存在c:\midlets\myMIDlet目录 (或者任何你选择的目录)。

代码段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:\j2me\midp-fcs\classes simpleMIDlet.java 


选项 - bootclasspath C: \j2me\midp - fcs\classes指定了 Java自举(启动)类文件目录。我们必须自己指向midp类,否则javac会使用默认的JDK类库去编译MIDlet程序。不出问题的话,就能顺利地编译simpleMIDlet.java生成simpleMIDlet.class文件 (默认情况下,生成的.class位于 Java源文件所在的目录)。2.预验证类文件。
preverify -classpath c:\j2me\midp-fcs\classes;. -d . simpleMIDlet


选项" -classpath C:\j2me\midp-fcs\classes;." 指定了到哪里去寻找用于预验证的.class文件。这包括需要用来做验证处理的 MIDP类 (通过 c:\j2me\midp-fcs\classes指定 )和你的类文件,它位于当前目录 (就是"."指定的)。选项"-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

<<上一页 1 2 3 4 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 用简单的J2ME程序测试MIDlet生命周期 (04-03) · J2ME中使用记录存储系统(RMS)存储信息 (04-03)
· MVC模式在J2ME项目中的实际应用 (04-03) · 在J2ME手机编程中内存的优化三招 (04-03)
· J2ME开发中记录管理系统的详细介绍 (04-03) · J2ME开发中如何从MIDlet中调用JSP页面 (04-03)
· J2ME开发之手机键盘使用注意问题 (04-03) · 在J2ME手机编程中播放声音流程的介绍 (04-03)
· 在J2ME手机编程中的时间处理的方法 (04-03) · 在J2ME编程中随机数字处理的介绍 (04-03)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 整合平台模式多样化 多卡合一模式渐成主流
· 网店征税步入倒计时 电子商务或将重新洗牌
· 谈八大厂商的“云计算”理念 信息化监理
· 企业短信平台解决方案 方正智思系统软件
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统