J2ME
,即
Java 2 Micro Edition
,是
SUN
公司推出的在移动设备上运行的微型版
Java
平台,常见的移动设备有手机,
PDA
,电子词典,以及各式各样的信息终端如机顶盒等等。
由于移动终端的类型成千上万,而且计算能力差异非常大,不可能像桌面系统那样仅仅两三个版本的
JVM
即可满足
Windows
,
Linux
和
Unix
系统,因此,
J2ME
不是一个简单的微型版的
JVM
。为了满足千差万别的移动设备的需求,
SUN
定义了一系列的针对不同类型设备的规范,因此,
J2ME
平台便是由许多的规范组成的集合。
最重要的移动终端当然是手机了,因此,我们主要讨论手机相关的
J2ME
规范。
Configuration
SUN
把不同的设备按照计算能力分为
CLDC(Connected Limited Device Configuration)
和
CDC(Connected Device Configuration)
两大类,这两个
Configuration
是针对设备软硬件环境严格定义的,比如
CLDC1.0
定义了内存大小为
64-512k
,任何设备如果支持
CLDC1.0
,就必须严格满足定义,不能有可选的或者含糊的功能。
CLDC1.0
是针对计算能力非常有限的设备定义的,只支持整数运算,不支持浮点运算,早期的
Java
手机大部分都支持
CLDC1.0
,如
Nokia 3650
,
Siemens 6688i
。
CLDC1.1
则增加了浮点运算,因此,在支持
CLDC1.1
的设备上,可以使用
float
和
double
类型的变量。现在的
Java
手机很多都能支持
CLDC1.1
,如
Nokia 9500
,
Siemens S65
。
CDC
则是针对计算能力比较强的设备定义的,如
PPC
等,
CDC
平台的
JVM
基本上和桌面的
JVM
很接近了,只是可以使用的
Package
大大少于
J2SE
的包。支持
CDC
的非常高端的
Java
手机也会很快上市。
Profile
和
Configuration
相比,
Profile
更多是针对软件接口的定义,
Profile
有必须实现的,也有可选的功能,因此,
Profile
更灵活。
最重要的
Profile
当然是
MIDP(Micro Information Device Profile)
,
MIDP
定义了能在
Java
手机上运行的
Java
程序的规范,包括应用程序生命周期,各种
UI
界面组件,支持
Record
存储和
Http
连接等等,符合
MIDP
规范的
Java
小程序被称为
MIDlet
,可以直接通过无线网络下载到手机并运行。
早期的
MIDP1.0
规范使我们能在手机上运行有
UI
界面的
Java
程序,但是
MIDP1.0
对游戏的支持不够,必须自己实现许多代码,因此,
MIDP2.0
规范大大加强了对游戏开发的支持,使开发者能编写更少的代码来创建游戏。
MIDP
规范的图形界面基本上都是独立于
J2SE
的
AWT
和
Swing
组件,因为目前手机的计算能力还比较有限,但是,随着手机的
CPU
越来越快,使得
AWT
和
Swing
移植到手机上也将成为可能,因此,基于
CDC
规范的最新的
PBP 1.0(Personal Basic Profile)
和
PP 1.0(Personal Profile)
提供了部分
AWT
和
Swing
的支持,目前,部分高端
PDA
已经可以运行
PBP
和
PP
的
Java
程序了。可以预见,将来大部分的
AWT
和
Swing
组件都能移植到手机上。
前面已经说过,和
Configuration
相比,
Profile
有许多可选包,比较实用的
Profile
还有在
JSR135
定义的
MMAPI(Mobile Media API)
,实现多媒体播放功能
;
在
JSR184
定义的
M3G API(Mobile 3D Graphics API)
,实现
3D
功能
;
在
JSR120
定义的
WMA(Wireless Messaging API)
,实现短消息收发。如果你的手机支持某一
Profile
,如
M3G
,那么便可以在
MIDlet
中使用
M3G
的
3D API
实现
3D
游戏。
如果你准备在手机上开发
J2ME
应用,选择手机时就需要注意厂商支持的
CLDC
规范,支持
MIDP1.0
还是
2.0
,是否支持
MMAPI
,
M3G
,
WMA
等可选包。
Profile
虽然定义了
Java API
接口,但是底层如何实现是由各厂商自己决定的,如
M3G
定义了
3D
接口,但是底层实现既可以使用硬件加速,也可以由
C
程序模拟,或者部分由硬件实现,部分由软件实现。
比
J2ME
更精简的
Java
平台被
SUN
称为
JavaCard
,运行在信用卡等芯片中,实现电子支付等功能,目前
SUN
还没有把
JavaCard
并入
J2ME
平台。
posted on 2006-06-16 16:06
超强皮鞋 阅读(63)
评论(0) 编辑 收藏