通过对J2ME的初识,开始了J2ME之旅。
J2ME(Java 2 Micro Edition),是SUN公司推出的在移动设备上运行的微型版Java平台,目前最常见的移动设备包括智能手机,掌上数据助理(PDA),以及各类信息终端等等。
由于移动终端的种类繁多,而且不同设备的运算能力存在很大的差异,不像在Windows,Linux和Unix桌面系统中,只需使用相应的JVM虚拟机即可运行可移植性的JAVA程序,所以J2ME并不单是一个简单的微型版的虚拟机JVM。在实际中,为了能满足各种各样的微型移动设备上的环境需求,SUN公司定义了一系列的针对不同类型设备的规范,因此,J2ME平台即是一个规范的集合。
目前最重要的移动终端就是移动手机,本文主要来讨论一下移动手机相关的J2ME规范。
一、Configuration
什么叫Configuration?SUN公司按照不同的设备,根据他们的计算能力分为CLDC(Connected Limited Device Configuration)和CDC(Connected Device Configuration)两种类型,而这两种Configuration都是分别针对设备的软硬件环境而定义的,例如CLDC1.0版本即定义了设备的内存大小为64-512k之间,如果设备支持CLDC1.0,那么它就必须严格满足CLDC1.0中的定义。
CLDC1.0规范只是针对运算能力非常小的移动设备而定义出来的,一次该规范只支持做整数运算,而无法支持做浮点数的运算,在早期的大部分Java手机都只能支持CLDC1.0。
与CLDC1.0不同的是,CLDC1.1增加了浮点数字运算能力,在任何支持CLDC1.1的移动设备上,都可以使用float和double类型的浮点数变量。目前的很多Java手机都能支持CLDC1.1。
另一种规范是CDC,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,MIDlet程序可以通过网络直接下载到手机中并运行。
相对于早期的MIDP1.0规范来说,MIDP1.0能使我们在手机上运行有手机UI界面的Java程序,但是MIDP1.0在手机游戏方面对游戏的支持还是不够,在开发过程中必须实现许多代码才能完成简单的程序,所以MIDP2.0规范的出现很大程度上加强了对手机游戏开发的支持,从而使得开发者能在创建游戏的过程中编写更少的代码量。
目前MIDP规范的图形界面UI都是独立于J2SE平台中的AWT组件和Swing组件,因为目前手机的运算能力还是比较有限的,随着手机的CPU运算速度的越来越快,使得J2SE中的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规范有MMAPI(Mobile Media API),能够实现手机中多媒体播放功能;M3G API(Mobile 3D Graphics API),定义了实现手机中3D的UI功能;WMA(Wireless Messaging API),实现手机短消息的收发。不同手机如果支持某一Profile,那么将可以在MIDlet中使用相应的接口API来实现相应的功能。
J2ME(Java 2 Micro Edition),是SUN公司推出的在移动设备上运行的微型版Java平台,目前最常见的移动设备包括智能手机,掌上数据助理(PDA),以及各类信息终端等等。
由于移动终端的种类繁多,而且不同设备的运算能力存在很大的差异,不像在Windows,Linux和Unix桌面系统中,只需使用相应的JVM虚拟机即可运行可移植性的JAVA程序,所以J2ME并不单是一个简单的微型版的虚拟机JVM。在实际中,为了能满足各种各样的微型移动设备上的环境需求,SUN公司定义了一系列的针对不同类型设备的规范,因此,J2ME平台即是一个规范的集合。
目前最重要的移动终端就是移动手机,本文主要来讨论一下移动手机相关的J2ME规范。
一、Configuration
什么叫Configuration?SUN公司按照不同的设备,根据他们的计算能力分为CLDC(Connected Limited Device Configuration)和CDC(Connected Device Configuration)两种类型,而这两种Configuration都是分别针对设备的软硬件环境而定义的,例如CLDC1.0版本即定义了设备的内存大小为64-512k之间,如果设备支持CLDC1.0,那么它就必须严格满足CLDC1.0中的定义。
CLDC1.0规范只是针对运算能力非常小的移动设备而定义出来的,一次该规范只支持做整数运算,而无法支持做浮点数的运算,在早期的大部分Java手机都只能支持CLDC1.0。
与CLDC1.0不同的是,CLDC1.1增加了浮点数字运算能力,在任何支持CLDC1.1的移动设备上,都可以使用float和double类型的浮点数变量。目前的很多Java手机都能支持CLDC1.1。
另一种规范是CDC,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,MIDlet程序可以通过网络直接下载到手机中并运行。
相对于早期的MIDP1.0规范来说,MIDP1.0能使我们在手机上运行有手机UI界面的Java程序,但是MIDP1.0在手机游戏方面对游戏的支持还是不够,在开发过程中必须实现许多代码才能完成简单的程序,所以MIDP2.0规范的出现很大程度上加强了对手机游戏开发的支持,从而使得开发者能在创建游戏的过程中编写更少的代码量。
目前MIDP规范的图形界面UI都是独立于J2SE平台中的AWT组件和Swing组件,因为目前手机的运算能力还是比较有限的,随着手机的CPU运算速度的越来越快,使得J2SE中的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规范有MMAPI(Mobile Media API),能够实现手机中多媒体播放功能;M3G API(Mobile 3D Graphics API),定义了实现手机中3D的UI功能;WMA(Wireless Messaging API),实现手机短消息的收发。不同手机如果支持某一Profile,那么将可以在MIDlet中使用相应的接口API来实现相应的功能。