随笔-1  评论-0  文章-2  trackbacks-0

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)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: