窥探JAVA手机的灵魂─漫谈J2ME

近来,手机总是伴随着一大堆专有名词,出现在各大传播媒体:一会儿是WAP;一会儿是蓝芽;一会儿是GPRS,最近又出现了一个让手机「活起来」的东西─ 「JAVA」!JAVA真的有这麽厉害,可以让Motorola最新的A6288手机「活起来」?这个JAVA和我们平常在电脑上用的JAVA语言是一样的东西吗?还是有什麽关联性?「活起来」的手机到底和一般的手机、还有WAP手机有什麽不同之处?现在,就让我们带着一窥究竟的好奇,一起去探访JAVA 手机的灵魂─「J2ME」。

J2ME是英文JAVA 2 Micro Edition的缩写,从字面上就可以解译出J2ME是JAVA家族的一员,它在JAVA家族的角色是定位在「嵌入式系统」的应用上。

我们用一个简单的图示来介绍这个家族:

image


用过C语言写过程式的人,都会用到C语言的标准函式库,JAVA也有函式库,而且JAVA将其所使用的函式库更有系统的予以类别化,称之为「类别函式库」。 JAVA的「类别函式库」又可以区隔出「核心类别函式库」(Core Class)及「扩充类别函式库」(Extended Class)。为了对应不同性能的设备环境(如企业用电脑、个人电脑、手机、资讯家电、PDA等),JAVA被分隔出几个不同的版本。於是,依照计算能力强弱、电源供应的状态,区隔出支援所有标准核心类别函式库,还增加许多企业应用面的扩充类别函式库,应用於企业及伺服器定位的J2EE(JAVA 2 Enterprise Edition);支援标准核心类别函式库,定位於用户端应用的J2SE(JAVA 2 Standard Edition) ;以及应用在相对计算能力较弱,仅支援一部份的标准核心愿别函式库,及支援嵌入式系统的扩充类别函式库的J2ME。

即然J2ME是定位在嵌入式系统的应用上,那什麽又是嵌入式系统呢?如果,我们换一个名词,J2ME是专为撰写消费性电子产品应用程式所发展出来的JAVA版本,这样或许大家就比较容易了解。消费性电子产品大可以到冰箱、电视,小可以到手机、PDA;它们的共通点在於使用嵌入式系统,让它们拥有逻辑处理和运算的能力;而它们的差异则在於体积大小及电源供应方式。针对这样的差异,J2ME将嵌入式装置分为「可以放在手掌上的装置」的CLDC(Connected Limited Device Configuration)及「可以插在墙上的装置」的CDC(Connected Device Configuration) 两种不同的版本。

目前CDC的规格尚未底定,正式对外发表的是CLDC版本。从「可以放在手掌上的装置」的字面上就可以理解,CLDC版本面对的是电力供应及运算能力限制较大的行动载具,如手机、PDA。又因为手机及PDA的差异,CLDC又衍生出两种 Profile,分别是PDA Profile以及针对行动通讯装置的Mobile Information Device Profile(简称MIDP)。所以,用来撰写在行动通讯装置的JAVA版本的全名应当是J2ME.CLDC.MIDP。

JAVA 为了达成「Write once , run anywhere」的跨平台能力,每一个版本都有专属的Virtual Machine(虚拟机器,简称VM)。J2ME的Virtual Machine叫KVM(K是Kilobytes)。现在我们对J2ME有个大概的了解,接下来我们就来说说J2ME是如何让手机「活起来」!


image

上面这个图是由两个立体的圆圈所组成,上面较小的圆圈代表的是一支WAP手机的功能,它可以提供通话的语音服务,有着制式的电话簿的附加应用功能。它上面还有WAP浏览器,可以让使用者上WAP网站。这样的手机虽然很霹雳,但是,总觉得少了什麽。如果,手机能像PDA一样,可以随心所欲下载不同的应用软体,或是不要透过WAP浏览器,直接应用TCP/IP上网,享受如电脑系统主从结构的应用,那不是更劲爆吗?而这样的需求,就必须由JAVA手机来达成。在上面这个图,便是代表JAVA手机的功能。因此,相对於不能依照自已需求的传统手机,JAVA手机更有弹性,应用功能也可随着使用者的需要增减。从这个层面来看,说JAVA让手机活了起来,似乎不无道理吧!
看到这里,是不是有些心动,也想开始牛刀小试,自己动手写一个手机上应用的JAVA程式呢?不要急!我们将在往后的篇章中,向大家逐一介绍。如果您己经等不及了,可以先到摩托罗拉的网站上看一看,那里有一个专属的开发者论坛和一些技术文件。

至於有关J2ME的中文书籍,大多是for Palm的,笔者认为「知城」出版的「深入浅出KJAVA」以及「峰」出版的「Palm应用程式设计─使用JAVA语言」都写得很不错,想了解J2ME的人,可以买来看一看。


 
阅读更多
换一批

没有更多推荐了,返回首页