J2ME学习笔记(三)

类别:Java 点击:0 评论:0 推荐:

   从今天开始我想我会有很长一段时间不会涉及真正的实际开发,这一段时间主要集中在基础的学习之

上。呵呵,不会走,我哪敢跑那?不过主要是因为暂时不用赶着给兄弟作东西,所以想好好学习一下。不

过代码肯定还是会写一些的。毕竟,多写代码才能更快的学习^_^

   呵呵,一步一步开始手机开发之旅途了。不知道我能不能坚持把这一块学完,因为公司工作压力也很

大。平时基本上没有休息,周末也还有一堆事情要做。所以也是很苦闷的一个方面。呵呵。尽力好了。一

直作web也不是办法,呵呵,多学一点说不定以后用得着。毕竟手持设备是未来的一个发展趋势。

   我学习的时候就是用的sun官方的MIDP实例。各位可以自己去下。我选择的是MIDP_2.0 的参考源码。
 
   写一个MIDlet能在实际的设备或者模拟器上执行需要如下几个步骤:
   1、编写程序代码
   2、编译
   3、预先审核(Preverify)这一步很重要,因为很多类PC上安装的J2SE支持,但是实际的J2ME并不支 

    持。
   4、编写描叙文档
   5、合成JAR文件
   6、测试排错
   7、在模拟器或者实体机器上运行。
    
   ok
  

我来开始编写一个简单的例子,从代码编写开始一直完成最终的这7个步骤。(这个例子是依托与MIDP_2.

0中某些已经定义好的接口来进行的,所以我将此程序放在我所解压的MIDP根目录:f:\midp下。)

第一步,编写代码:

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMIDlet extends MIDlet implements CommandListener{
 private Command exitCommand;
 private Display display;
 public HelloMIDlet(){
  display = Display.getDisplay(this);
  exitCommand = new Command("Exit", Command.SCREEN, 2);
 }
 public void startApp(){
  TextBox t = new TextBox("Hello MIDlet", "Test string", 256, 0);
  t.addCommand(exitCommand);
  t.setCommandListener(this);
  display.setCurrent(t);
 }
 public void pauseApp(){}
 public void destroyApp(boolean unconditional){}
 public void commandAction(Command c, Displayable s){
  if (c == exitCommand){
  destroyApp(false);
  notifyDestroyed();
  }
 }
}

第二步:编译
我在f:\midp下建立了一个midjavac.bat文件专门用来编译

javac -g:none -classpath F:\midp\classes;. -bootclasspath F:\midp\classes %1

-bootclasspath这个参数我也是第一次用,应该是控制编译第时候控制只使用所制定目录下第基类吧。如

果不使用此参数那么有可能你写的程序可以PC上运行,但是不能在支持MIDP的手持设备上运行。

然后在dos下转到f:\midp下运行  midjavac HelloMIDlet

第三步:预先审核
同样,我在f:\midp下建立了midver.bat文件用来进行预审核。

F:\midp\bin\preverify -classpath F:\midp\classes;. -d %1 %2

在dos下转到midp文件夹,运行  midver test HelloMIDlet
如果预审核通过那么就会在f:\midp下建立一个文件夹test,将预审核通过第类放入其中。

这个时候其实我们写的程序就可以在模拟器上运行了。

第四步:编写描叙文档
文件名:HelloMIDlet.jar
MIDlet-Name: HelloWorld
MIDlet-Version: 1.0.0
MIDlet-Vendor: Sun Microsystems, Inc.
MIDlet-Description: Sample Hello World MIDlet
MIDlet-Info-URL: http://java.sun.com/j2me/
MIDlet-Jar-URL: http://127.0.0.1/HelloMIDlet.jar
MIDlet-Jar-Size: 1020
MicroEdition-Profile: MIDP-1.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-1: HelloWorld,, HelloMIDlet

第五步:合成jar文件
编制一个midjar.bat 文件
jar -cfm %1 %2 -C .\%3 .
运行:midjar HelloMIDlet.jar HelloMIDlet.jad HelloMidlet

第六步:测试排错
写一个midjartest.bat文件
F:\midp\bin\midp -classpath F:\midp\classes;%1 -descriptor %2

在dos下运行:midjartest HelloMIDlet.jar HelloMidlet.jad
呵呵,应该看到运行情况了吧?!
如果你发现ALERT: Error verifying class HelloMIDlet
这么一个错误那就是你的程序没有经过预审核哦^_^

第七步:呵呵,如果有手持设备就自己传上去试试看看咯。如果没有那就只有在模拟器上运行了。。对了

,如果在模拟器上运行第话应该不用合成jar文件。

呵呵,其实这些东西都很基础,我完全可以装一个nokia或者moto的模拟器,然后只用在jb上装上mobiles

et,然后画一个插件就可以搞定。我之所以要用这么复杂(汗ing。。自己写的时候都有些不耐烦)的步

骤来完成如此简单的步骤,其实就是为了更好的理解手机程序的完成原理而已。

本文地址:http://com.8s8s.com/it/it11952.htm