首页 手机资讯 解决方案 ID&MD设计 手机展会 手机鉴赏 配套商联盟 手机论坛

ci800
欢迎 游客 , 注册 | 登录 | 会员 | 界面 | 简洁版本 | 在线 | 帮助
去免费吧
就爱黑客
IT资讯

发表新主题 回复该主题
本主题被查看180次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第   上一主题   下一主题
标题: 在MIDlet套件中封装多个MIDlet
上等兵
UID: 9697
来自:
精华: 0
积分: 20
帖子: 20
注册: 2008-7-14 13:15:00
状态: 离线
威望: 0
金钱: 5.00 元
只看楼主 2008-07-21 14:16
在MIDlet套件中封装多个MIDlet
在我们谈论如何封装多个 MIDlet之前,我们先得多写几个可用的MIDlet。下面有两个简单的 MIDlet。
第一个显示一个带有简短消息的文本框组件。

  MIDlet1.java源程序:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MIDlet1 extends MIDlet implements CommandListener
{
  private Display display; // 引用Display对象
  private TextBox tbxMain; // 显示消息的文本框
  private Command cmdExit; // 退出MIDlet的命令
  // 构造程序
  public MIDlet1()
  {
  display = Display.getDisplay(this);
  cmdExit = new Command("Exit", Command.SCREEN, 1);
  tbxMain = new TextBox("MIDlet 1", "Welcome", 50, 0);
  tbxMain.addCommand(cmdExit);
  tbxMain.setCommandListener(this);
  }
  // 启动MIDlet时由应用程序管理器调用
  public void startApp()
  {
  display.setCurrent(tbxMain);
  }
  // 一个必要的方法
  public void pauseApp()
  { }
  // 一个必要的方法
  public void destroyApp(boolean unconditional)
  { }
  file://检查一下是否选择Exit命令
  public void commandAction(Command c, Displayable s)
  {
  if (c == cmdExit)
  {
  destroyApp(false);
  notifyDestroyed();
  }
  }
}

  第二个MIDlet使用List组件显示消息(MIDlet2.java):
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MIDlet2 extends MIDlet implements CommandListener
{
  private Display display; file://引用Display对象
  private List lstMain;
  private Command cmdExit; // 退出 MIDlet的命令
  // 构造程序
  public MIDlet2()
  {
  display = Display.getDisplay(this);
  cmdExit = new Command("Exit", Command.SCREEN, 1);
  lstMain = new List("MIDlet 2", Choice.IMPLICIT);
  lstMain.append("Welcome Back", null);
  lstMain.addCommand(cmdExit);
  lstMain.setCommandListener(this);
  }
  file://启动MIDlet时由应用程序管理器调用
  public void startApp()
  {
  display.setCurrent(lstMain);
  }
  file://一个必要的方法
  public void pauseApp()
  { }
  file://一个必要的方法
  public void destroyApp(boolean unconditional)
  { }
  file://检查一下是否选择Exit命令
  public void commandAction(Command c, Displayable s)
  {
  if (c == cmdExit)
  {
  destroyApp(false);
  notifyDestroyed();
  }
  }
}


  第一个程序名为 MIDlet1.java,第二个程序名为 MIDlet2.java。在你保存这些文件的目录里,运
行下列命令编译并预验证这些文件。
javac -bootclasspath c:mefcs*.java
preverify -classpath c:mefcs;. -d . MIDlet1 MIDlet2
jar cvfm MIDlets.jar manifest.txt MIDlet1.class MIDlet2.class spin.png

  创建 JAR文件
创建一个新文件,取名为 manifest.txt,然后输入如下内容:
MIDlet-Name: MIDlet Examples
MIDlet-Version: 1.0
MIDlet-Vendor: My Corporation Inc.
MIDlet-1: MIDlet1, /spin.png, MIDlet1
MIDlet-2: MIDlet2, /spin.png, MIDlet2
MicroEdition-Profile: MIDP-1.0
MicroEdition-Configuration: CLDC-1.0

  运行下列命令创建一个 JAR文件:

  
jar cvfm MIDlets.jar manifest.txt MIDlet1.class MIDlet2.class spin.png

  这将创建一个名为 MIDlets.jar的 JAR文件,包括 manifest.txt文件和上面两个类文件。

  注意: JAR中的清单文件名应是 manifest.mf。

  创建 JAD文件

  创建一个新文件,取名 MIDlets.jad:
MIDlet-Name: MIDlet Examples
MIDlet-Version: 1.0
MIDlet-Vendor: My Corporation Inc.
MIDlet-Description: Two simple examples to show how to compile and run a MIDlet
MIDlet-Jar-URL: http://localhost/MIDlets.jar
MIDlet-Jar-Size: 2604
MIDlet-1: MIDlet1, /spin.png, MIDlet1
MIDlet-2: MIDlet2, /spin.png, MIDlet2

  注意这两个 MIDlet的引用:
MIDlet-1: MIDlet1, /spin.png, MIDlet1

MIDlet-2: MIDlet2, /spin.png, MIDlet2

  上面每一行都包括在设备上显示的 MIDlet名 ( MIDlet1和 MIDlet2 );在每个MIDlet名旁边,应用
程序管理器都会显示一个图象文件;以及启动 MIDlet的类文件。

  运行 MIDlet

  你既可以从一个局域网文件系统也可以从一个 Web服务器中运行MIDlet,现在我将分别介绍一下。

  从文件系统运行

  键入下列命令来预览MIDlet:
midp -transient file://MIDlets.jad

   -transient选项告诉模拟器,你想运行一个指定 url中可找到的描述文件。在本例中,
file://MIDlets.jad,这当前目录查找 MIDlets.jad。如果有必要的话,你还可以给出一个 JAD文件的
完整的路径。比如说,我的 JAD文件的完整路径是
file://J2ME/MIDlets/welcome.jad
  从 Web服务器上运行

  你还可以从一个 Web服务器上运行 MIDlet,在上载 JAR和 JAD文件之后,通过改变 url访问 JAD文
件:
midp -transient http://localhost/MIDlets.jad

  这将访问运行在我的电脑上的Web服务器上的 MIDlets.jad文件,如果你把文件上传到互联网上的 
Web服务器,只需简直改变适当域名:
midp -transient http://www.yourwebserver.com/path/MIDlets.jad

  使用 Java程序包的项目管理

  按照下列步骤创建最后一个MIDlet:

  1. 创建用于新项目的目录,我使用的名称为 MIDletPackage,是c:me的子目录。

  2. 在新建目录内,创建三个新的子目录: jclasses、 pclasses、 resources

  有了这些附加的目录,能够很容易找到特定的文件。例如,所有的图象文件和其他资源都放入 
/resources子目录;所有的由 Java编译程序创建的类文件都置于 /jclasses子目录;经过预验证的类置
于/pclasses子目录中。下面是我的系统中的目录结构:
c:j2me
|
MIDletPackage => Java 源代码和manifest.txt文件
|
jclasses => 从Java编译器编译的类
pclasses =>经过预验证的类
resources =>资源文件 (图像文件等)

   3. 更新文件:复制 Java源文件( MIDLet1.java和 MIDlet2.java)到 MIDletPackage目录,并在每
个文件头部添加 package语句,如下:而且,如果你已经使用一个图象文件的话,把这个文件复制进 
resources目录中。
MIDlet1.java:
package simpleMIDlets;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MIDlet1 extends MIDlet implements CommandListener
{

...

}

MIDlet2.java:

package simpleMIDlets;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MIDlet2 extends MIDlet implements CommandListener

{

...

}

  4、参考图象文件和类文件的新的位置更新 manifest.txt和 JAD文件。
manifest.txt:
MIDlet-Name: MIDlet Examples
MIDlet-Version: 1.0
MIDlet-Vendor: My Corporation Inc.
MIDlet-1: MIDlet1, /resources/spin.png, simpleMIDlets.MIDlet1
MIDlet-2: MIDlet2, /resources/spin.png, simpleMIDlets.MIDlet2
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0


MIDlets.jad:
MIDlet-Name: MIDlet Examples
MIDlet-Version: 1.0
MIDlet-Vendor: My Corporation Inc.
MIDlet-Description: Packaging multiple MIDlets
MIDlet-Jar-URL: http://localhost/MIDlets.jar
MIDlet-Jar-Size: 2884
MIDlet-1: MIDlet1, /resources/spin.png, simpleMIDlets.MIDlet1
MIDlet-2: MIDlet2, /resources/spin.png, simpleMIDlets.MIDlet2

  注意MIDlet-1和MIDlet-2的更改,被引用的类文件使用 simpleMIDlets.MIDlet1和 
simpleMIDlets.MIDlet2包名。

  5、编译:编译源程序:
javac -bootclasspath c:mefcs-d jclasses *.java

  -d选项告诉编译程序,把类文件写入 jclasses目录。

  6、预验证:
preverify -classpath c:mefcs; -d pclasses jclasses

  -d选项告诉预验证器把经过预验证的类保存在 pclasses目录下。最后的 jclasses告诉预验证器到
什么地方寻找那些要预验证的类。

  7、创建 JAR:运行 jar程序:
jar cvfm MIDlets.jar manifest.txt -C pclasses . resources 

  创建一个名为 MIDlets.jar的文件,使用文件 manifest.txt作为清单文件的内容 (一个名为 
manifest.mf的文件将被保存在 JAR中)。

  运行MIDlet,有两种情况:

  (1)从文件系统中运行MIDlet:
midp -transient file://MIDlets.jad

  (2)从web服务器上运行MIDlet:把JAR文件和JAD文件上传到web服务器,输入下面的命令来浏览
MIDlet:
midp -transient http://localhost/MIDlets.jad
本文章来自中国IT实验室http://embed.chinaitlab.com/
发表新主题 回复该主题
本主题被查看180次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第







         Powered by www.ci800.com     Copyright © 2001-2009 www.ci800.com. 版权所有 ci800 bbs
Processed in 0.032 seconds 现在的时间是 2009-01-07 08:46:28