来源:作者: 发布时间:2007-12-19 10:03:55


J2ME新手,做了一个游戏的项目,其中有些体会,觉得有些东西还是能够拿出来和大家分享。说错了还请包涵。
研发环境:
windows2000+JBuilder X+semc_j2me_sdk_2_1_4_beta
从来没有接触过这个方面,因为小组一个项目要开始学J2ME,看了两天的书,发现其实JDK还是很简单的。总共也就那几个类。只是假如要考虑到资源和性能的最好优化的话,算法和数据结构的需要比较高。
先说环境的搭建:
1、windows2000(这个不用说了)
2、JBuilder X(其他版本的JBuilder其实应该也没问题,只是我机子只有512,跑9或2005的话有点郁闷)
3、因为是针对索爱的K700C研发的项目,所以JDK使用索爱的JDK
4、JBuilder中使用手机的JDK,步骤为Tools-Configure JDKs-Add
研发J2ME的话首先了解J2ME的结构层次,看了很多介绍性的文档顺序也大概都是这样子,网上的这方面的介绍浩如烟海,我在此也不赘述了,只是说说我的理解吧。
J2ME的核心是Configuration(CLDC、CDC),在这之上是Profile(MIDP),而我们的手机研发也大部分是在Profile上,也就是说CLDC+MIDP。
假如您要周详了解J2ME一路发展的历史,能够下载JSR规范读读,地址是http://jcp.org
第一天的工作:
有点乱,因为也是刚刚接触这个东东,一点实际经验都没有(java也只是看的零零碎碎的)。拿着本书在实验室泡了整整一天,大概了解了一下程式的基本结构。(强烈推荐sun出版的《J2ME无线设备程式设计》第二版,看得很之痛快)。
程式中继承了MIDlet类的类能够理解为程式的入口。相当于win32中的winmain,运行的话都是从这个开始。
MIDlet的结构为
public class GameMIDlet extends MIDlet {
public GameMIDlet() {} //构造函数,参数必须为空
public void startApp() //程式开始(或被系统中断之后再回到程式)
public void pauseApp() //程式暂停(处理一些暂停的清理工作,但是要注意系统碰到来电或此类的事件时并非是将程式暂停,而是整个挂起,正常后又开始执行startAPP())
public void destroyApp(boolean con) //销毁工作。}
今天就写这么多了,明天说一下displayable和Graphics吧。另外也说一下大概的J2ME手机游戏的结构。
附:简单的MIDlet
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMIDlet extends MIDlet implements CommandListener
{
private Display display;
private Command exitCommand;
private TextBox text;
public HelloMIDlet() {
display = Display.getDisplay(this);
exitCommand = new Command("离开", Command.BACK, 1);
text = new TextBox("Hello App", "Welcome!", 256, 0);
text.addCommand(exitCommand);
text.setCommandListener(this);
}
public void startApp() {
display.setCurrent(text);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c, Displayable s) {
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
}
|
还没有关于此文章的相关评论!