J2ME
学习总结(一)
本人学习
J2ME
的原因是毕业设计课题的需要,要开发一个基于
J2ME
的移动设备
3D
游戏,需要从基础一步一步学习。
前言
•
如果大家没有接触过无线移动开发,可能想到要在手机运行自己写的程序或者游戏,一定很难;
•
不过可以放心,这些东西一旦跟
java
扯上关系,那问题就好像没有那么复杂了;
•
今天就给大家介绍
j2me
的一些基本知识
J2ME
技术概述
•
J2ME
是
SUN
公司针对嵌入式、消费类电子产品推出的开发平台,与
J2SE
和
J2EE
共同组成
Java
技术的三个重要的分支。
•
J2ME
平台是由配置(
Configuration
)和简表(
Profile
)构成的。配置是提供给最大范围设备使用的最小类库集合,譬如
IO
,支持的数据类型等等,在配置中同时包含
Java
虚拟机。简表是针对一系列设备提供的开发包集合。
•
J2ME
中有两个最主要的配置,分别是
Connected Limited Devices Configuration
(
CLDC
)和
Connected Devices Configuration
(
CDC
)。
CLDC
主要针对那些资源非常受限的设备比如手机、
PDA
、双工寻呼机等。而
CDC
主要面对那些家电产品,比如机顶盒、汽车导航系统等。
•
简表是以配置为基础的
•
例如
Mobile Information Devices Profile
(
MIDP
)就是
CLDC
上层的重要简表。
•
在
MIDP
中定义了一种新的应用程序模型
MIDlet
,它是被
Application Management Software
(
AMS
)管理的。
AMS
负责
MIDlet
的安装、下载、运行和删除等操作。
•
在被
AMS
管理的同时,
MIDlet
可以和应用管理软件通信通知应用管理软件自己状态的变化,通常是通过方法
notifyDestroyed()
和
notifyPaused()
实现的
•
MIDlet
有三个状态,分别是
pause
、
active
和
destroyed
。
J2ME
的应用
目前
J2ME
主要应用在移动电话上,主要是游戏开发。
事实上,
J2ME
能够做的内容有很多,绝对不应该局限于游戏。
SonyEricsson
,
Nokia
等厂商都把重点转向了企业和产品应用层面,特别是与
J2EE
的
结合,将会一个完美的亮点;
另外
Mobile Java 3D
作为一个独立的领域也正在受到大家的广泛欢迎和关注。
我现在的毕业设计就是
Mobile Java 3D
开发环境搭建
•
下载相关软件
J2SE
:
JDK 1.4 or later
,
http://java.sun.com
无线开发包
:
WTK 2.2 or later
,
http://java.sun.com
IDE
工具
:
Eclipse 3.1
,
http://www.eclipse.org
开发插件:
Eclipse Me 1.2
其他可选包:
Nokia SDK
等
注意:下载开发插件的时候选择与
Eclipse
匹配的版本,当前使用的
版本为
1.2
,支持
Eclipse 3.x
•
搭建过程
第一步
安装
JDK
第二步
安装
WTK
,双击安装包,下一步到底
第三步
安装
Eclipse
第四步
安装
Eclipse Me
插件
安装
Eclipse
插件方式很多,可以直接更新安装,也可以直接
下载插件安装包安装,我们采用第二种方式:分别拷贝
features
和
plugins
的文件到
Eclipse
对应的目录下,删除
Eclipse
安装目录
对应的
configuration
下的
org.eclipse.update
文件夹,然后再启动
Eclipse
即可
•
安装完成后,启动
Eclipse,
在菜单栏
window/preferences
可以看到:
•
然后选择
platform Components
项添加
WTK
•
选择
WTK
安装目录
•
安装完毕,新建一个
J2ME
项目测试一下
•
新建一个
Midlet
程序
•
运行
•
运行结果出现默认手机模样(左图)
一个简单的HelloWorld例子
•
黑色部分为
Midlet
框架部分,插件自动生成,我们只需要添加少量代码
import javax.microedition.midlet.*;
public class HelloWorld extends MIDlet {
private Display dispaly = null;
public HelloWorld(){
display = Display.getDisplay(this);
}
protected void startApp() throws MIDletStateChangeException {
Form form = new Form(
“
Hello world!
”
) ;
display.setCurrent(form);
}
protected void pauseApp() {}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}
}
MIDP2.0
常用
API
介绍
待续......