J2ME的相关概念
作为一种跨平台的语言,Java近年来得到了广泛关注和快速发展,为了适应不同级别计算机硬件的开发需要,Java平台形成了三个分支,J2EE,J2SE和J2ME。
针对企业级应用的J2EE,是一个适合分布式的、多用户、企业级应用系统运转的平台,针对桌面应用的J2SE,针对移动终端领域的J2ME。
那么,到底什么是J2ME?简单来讲,J2ME是一个支持Java应用程序的运行环境,是为了支持象PDA、手机等小型的嵌入式或移动设备而推出的一系列的技术和规范的总称。
由于J2ME要支持的硬件平台有很大差异,其中有比较高端的设备,如机顶盒,也有比较低端的,如手机,因此为了满足不同硬件的开发要求,J2ME规定了Configuration(配置)的概念,Configuration对不同级别的硬件在所使用的虚拟机和基础API集合方面做了规定。对于高端的设备,采用CDC(Connected Device Configuration),对于低端设备,则采用CLDC(Connected Limited Device Configuration),旨在为只能获取有限连接的设备提供基础配置。
CDC和CLDC仅仅是对各类设备中最具共性的配置提供了基本的功能集合。在实际应用中,不同的设备之间仍旧存在着很大的差异性。因此,在Configuration的基础上,又提出了Profile(简表)的概念。Profile规定的内容,是针对某一类设备所制订的规范和API,有了Profile以后,才真正有了可以建立一个可运行J2ME应用程序的完整环境。MIDP(Mobile Information Device Profile移动信息设备简表)以CLDC为基础,它是第一个制订完成的Profile,也是第一个可供使用的J2ME应用程序运行环境。
总的来说,J2ME的技术组成,包括如下三个要素:
◆ 置(Configuration):为大部分移动终端提供了虚拟机的能力和最基础的函数库,如通信能力、联网能力;
◆ 表(Profile):位于Configuration之上,为移动终端提供了一系列API,通常包含显示所需的图形库;
◆ 选包(Optional Package):与特定技术相关的一系列API,如多媒体播放,蓝牙传输能力等。
图1是对以上内容的一个直观表示。
当前绝大部分手机都是基于CLDC+MIDP的配置,在这二者的基础之上,实现了各种不同的可选包,从而使得丰富多彩的Java应用运行在移动终端成为可能。
J2ME的规范体系介绍和现状
前面已经提到过,可以将J2ME理解为一系列的技术和规范的总称。那么这些技术规范是怎么产生的,又是由谁来维护的呢?由在国际上,有一个由Sun主导的标准化组织JCP(Java Community Process),该组织根据领域的不同,分为三个大的工作方向,即J2EE,J2SE和J2ME。而J2ME领域的标准的制定者,包括业界知名的运营商,如Vodafone,Orange,中国移动等;终端制造商,如Nokia,Motorola,Sumsung等;提供Java虚拟机的厂商,如IBM、Aplix、Esmertec等;以及一些感兴趣的公司团体。
JCP中的每个规范被称为JSR(Java Specification Request)。各个JSR分别从不同的角度对Java虚拟机的能力进行了规范,并对应一个数字编号,如JSR75规定了Java应用如何通过虚拟机提供的接口访问终端操作系统的PIM数据和文件系统。此外,还包括针对对蓝牙、多媒体、短信、彩信等的JSR。而这些规范的发布、更新和维护由JCP来统一管理,确保了让业界不同角色的厂商能够共同参与定义J2ME平台的能力,共同推进Java技术向前发展。
虽然Java是本着跨平台的目的而产生的技术,但是在移动终端领域却没能完全实现这一宏伟的目标。由于设备没有一个统一的标准的软件运行环境,导致了API的分裂。开发者在针对某些机型进行开发之前还必须要查询这个设备到底支持什么功能,有哪些是标准的API,哪些是可选包和厂商提供的API。这无疑给开发带来了不便,同时使得程序的可移植性大大降低。如果你得程序中使用了Nokia的API那么程序很难在其他厂商的机器上跑。所以,J2ME在不同的移动终端平台上由于实现的不同而造成的分裂局面成了待解决的问题。
[1] [2] [3] 下一页