游戏之道
文不在多 有用就行
posts - 5, comments - 14, trackbacks - 0, articles - 1
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
从“傻X”到牛X——基础篇(一)准备工作
Posted on 2009-04-26 16:16
Silver Wong
阅读(492)
评论(0)
编辑
收藏
所属分类:
J2ME游戏开发
一、什么是J2ME
J2ME
:Java 2 Micro Edition。JAVA的微型版,用其编写的程序可用于安装有KVM的小型设备上。
KVM
:Java平台上最小的虚拟机,用于CLDC配置的虚拟机。
CLDC
:Connected Limited Device Configuration,有限连接设备配置。它是JAVA定义的一种规范。CLDC定义的硬件参数是,512KB以下的内存,有限能源供应(一般指电池),有限网络连接,简单用户界面,16或32位处理器。CLDC就是用于满足上述条件的设备上。
我们现在的手机一般都远远超过了上述设备条件。(别拿2000年前的产品和山寨机说事儿。)
所以,很多手机上都配备了
CDC
(Connected Device Configuration 连接设备配置),CDC又是怎么会事呢?它同CLDC一样,是一种规范,只不过在硬件上的参数条件都高级CLDC。
CDC的参数为,2MB以上内存,具有网络连接能力,32位或64位处理机。这样配备的手机显然可以运行的游戏,要比CLDC上的强得多。
MIDP
:它基于CLDC,为我们开发移动设备应用程序提供了一些必要的API。
MIDlet套件
:由MIDP提供,我们要开发手机游戏,都要基于它。等下用到就知道了。
上面有一堆概念,怕麻烦的同学只需要记住一点,
我们开发J2ME应用程序时,主类都要继承MIDlet类
就行了。我们今天的目标是
写一个能在手机上运行的HelloWorld
。
二、开发环境的搭建
在
扫盲篇(一)
里,我们已经下载安装了WTK和Eclipse,现在我们要做的就是整合他们,并构建一个基于Eclipse的开发环境。
1.下载
EclipseMe
插件。我认为EclipseMe是目前在Eclipse平台上开发J2ME最好插件。目前最新版本是eclipseme.feature_1.7.9。点击
eclipseme.feature_1.7.9_site.zip
进行下载。
2.打开Eclipse,选择Help——Software Updates
出现一个标题栏为Software Updates Add-ons的对话框。点击右边的Add Site按钮。
再点Archive按钮
选择刚才下载的
eclipseme.feature_1.7.9_site.zip
,再点OK。
这时,刚才的Software Updates Add-ons对话框中会多出来一项
(上面的图中,由于我已经安过EclipseMe,所以先截图时就已经有这一项了。)
选中EclipseMe这一项,点右上角的Install开始安装。安装完后会要求重启Eclipse。
重启后,我们按Ctrl+N新建,会多出J2ME这一项。
别慌,配置还没完,先取消掉。我们还要把WTK整合进来。Window——Preferences。
选中左边的J2ME,再填写WTK的安装路径。
再设置Device Management,点Import。
查找目录填WTK安装路径下的bin目录,点击Refresh。会出现如下图的四种虚拟手机设备,最后Finish。
到此,我们的J2ME开发环境就搭建好了。现在开始正式进入J2ME HelloWorld的编写。
三、HelloWorld
1.Ctrl+N 新建一个J2ME MIDlet Suite,看清楚,是MIDlet Suite。
2.填入工程名称。
3.选择设备,这里我们选默认的彩屏手机。
4.Finish。
这样,我们一个J2ME的工程就建好了。
现在新建一个J2ME MIDlet。(这次是MIDlet了)
去掉TODO标签,默认代码如下:
Java代码
import
javax.microedition.midlet.MIDlet;
import
javax.microedition.midlet.MIDletStateChangeException;
public
class
Hello
extends
MIDlet {
public
Hello() {
}
protected
void
destroyApp(
boolean
arg0)
throws
MIDletStateChangeException {
}
protected
void
pauseApp() {
}
protected
void
startApp()
throws
MIDletStateChangeException {
}
}
我们可以看出,这就是一个普通的类, 只不过继承父类MIDlet。
destroyApp(),pauseApp(),startApp()是由MIDlet给我们提供的三个抽象方法。
说到这里,我们有必要先了解一下J2ME程序运行的三种状态。
暂停状态(Paused),运行状态(Actived)和终止状态(Destoryed)。
程序运行,首先进入startApp()方法里,此时程序是运行状态。
当有电话来了或人为将游戏暂停时,程序进入pauseApp(),此时程序是暂停状态。
当退出程序时,程序会调用destroyApp(),然后中止。
值得一提的是,程序开始运行时,第一个状态并不是运行状态,而是暂停状态,不过只暂停了很短暂的时间,程序就开始调用startApp(),进入运行状态。
我们现在来写一段HelloWorld的代码。
Java代码
/**
* javax.microedition.lcdui包 中包含了液晶显示屏用户界面的一些类。
* UI操作少不了它。
*/
import
javax.microedition.lcdui.Display;
import
javax.microedition.lcdui.Form;
import
javax.microedition.midlet.MIDlet;
import
javax.microedition.midlet.MIDletStateChangeException;
/**
* 继承了MIDlet的类将成为J2ME应用程序的入口类,
* 入口方法也不在是以前J2SE的main()方法。
*/
public
class
Hello
extends
MIDlet {
Form f;
//声明一个窗体
Display d;
//声明一个显示对象,也可以称为屏幕控制对象吧。
/**
* J2ME程序一定要在构造函数中初始化数据。
* 不要写在startApp()里,因为从暂停状态回到运行状态时会调用startApp()方法
*/
public
Hello() {
f =
new
Form(
"Hello"
);
//新建一个标题为Hello的窗体对象
f.append(
"Hello World"
);
//在窗体中增加一个"Hello World"字符串
d = Display.getDisplay(
this
);
//获得显示对象
}
protected
void
startApp()
throws
MIDletStateChangeException {
/**
* 程序开始运行时,用显示对象的setCurrent()方法,来确定显示哪一个窗体。
* J2ME应用程序不像我们PC上的应用程序可以显示多个窗体,
* J2ME一次只能显示一个窗体。
*/
d.setCurrent(f);
}
protected
void
destroyApp(
boolean
arg0)
throws
MIDletStateChangeException {
System.out.println(
"Bye bye!!"
);
//程序退出时,控制台输出"Bye bye!!"
}
protected
void
pauseApp() {
}
}
我们现在点击运行按钮的下箭头,选择运行设置
再选中左边的Wireless Tookit Emulator,点击"新建"按钮,此时,会多出一个"New configuration"的设置。
选中"New configuration",开始设置,运行。
运行效果如下:
细心的同学可能发现了,退出程序后,控制台怎么没输出"Bye bye!!"啊?
再好好看看手机模拟器上那个退出按钮,对,那根本就不是正常退出,而是关机键……
那自然是没有触发destroyApp()方法。关于怎样触发,我们下次再讲。不过今天的内容还没完,我们的最终目标是
让它能在正真的手机上运行
,那么,还差什么?当然是能在手机上安装的 .jar 文件。
反键点工程名——J2ME——Create Package.
在工程根目录的deployed目录下就会生成一个J2ME01.jar 有兴趣的同学拿到手机上去试验一下吧。嘿嘿,可是不能正常退出哦。
本文出自Silver Wong的博客:http://www.blogjava.net/conanwsz
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
博客现在已经搬家到http://www.neegou.com
从“傻X”到牛X——基础篇(一)准备工作
从“傻X”到牛X——扫盲篇(二)JAVA的基本语法(一)
从“傻X”到牛X——扫盲篇(一)JAVA的基本概念
从“傻X”到牛X——写在最前面的话
Powered by:
BlogJava
Copyright © Silver Wong
日历
<
2009年4月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
公告
本BLOG以J2ME游戏开发为主,欢迎大家一起讨论。
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
J2ME游戏开发(5)
随笔档案
2011年4月 (1)
2009年4月 (5)
文章分类
J2ME游戏开发
搜索
最新评论
1. re: 从“傻X”到牛X——扫盲篇(二)JAVA的基本语法(二)
终于出来了。。
--Stan
2. re: 从“傻X”到牛X——扫盲篇(一)JAVA的基本概念
评论内容较长,点击标题查看
--Silver Wong
3. re: 从“傻X”到牛X——扫盲篇(一)JAVA的基本概念
评论内容较长,点击标题查看
--Silver Wong
4. re: 从“傻X”到牛X——扫盲篇(一)JAVA的基本概念
哥哥啊,你给的jdk和wkt的下载路径都不对啊,我最后是上了sun和java的官方网站才下到的,一个15mb,一个69mb。
--liudongtnt@163.com
5. re: 从“傻X”到牛X——扫盲篇(一)JAVA的基本概念
评论内容较长,点击标题查看
--liudongtnt@163.com
阅读排行榜
1. 从“傻X”到牛X——扫盲篇(一)JAVA的基本概念(643)
2. 从“傻X”到牛X——基础篇(一)准备工作(492)
3. 从“傻X”到牛X——扫盲篇(三)JAVA的基本语法(二)(391)
4. 从“傻X”到牛X——扫盲篇(二)JAVA的基本语法(一)(311)
5. 从“傻X”到牛X——写在最前面的话(252)
评论排行榜
1. 从“傻X”到牛X——扫盲篇(一)JAVA的基本概念(6)
2. 从“傻X”到牛X——写在最前面的话(4)
3. 从“傻X”到牛X——扫盲篇(二)JAVA的基本语法(一)(3)
4. 从“傻X”到牛X——扫盲篇(三)JAVA的基本语法(二)(1)
5. 博客现在已经搬家到http://www.neegou.com(0)