GoogleAndroid会使Java领域支离破碎?谷歌的Android软件给了Sun公司的Java技术一个显赫的角色——但并非是其它手机厂商从2 0世纪9 0年代以来借以不断发展的Java技术版本。
相反,谷歌试图独立提高开放手机联盟 (Open Handset Alliance)的手机中使用的软件的性能和开放性。这意味着,程序设计员们将有一个新的Java技术可以用来编程,谷歌周一宣布了一项价值一千万美元的Android应用软件开发大赛以吸引开发精英参与。
一个显著不同是谷歌自己开发的Java虚拟机内核技术 (JVM),称为Dalvik,该Java虚拟机在Android手机上执行Java程序。谷歌表示,即使在手机的限制性硬件上,Dalvik也能使 Java程序运行得很快。与我们通常使用的Java虚拟机的一个显著的区别就是, Android并不属于Sun公司在1999年成立的Java标准制定组织(Java Community Process, 简称JCP)的一部分。
JCP负责处理和审批各种Java技术和技术规范,将新的Java特点系统化为应用程序编程接口(API),所以程序员可以有一个标准的方式调用新的技术,比如蓝牙技术或三维图形。但现有的Java的技术不能满足谷歌公司认为对于Android平台很重要的开放性要求。
致力于 Android平台开发的谷歌高级工程师Mike Cleron 说:“我们希望该平台以多种不同的方式开放。我们的想法是,谁都可以在已有的Android软件上,甚至及其细微的层面上进行二次开发和替换。现有的 Java APIs并没有达到我们希望在Android上达到的开放性要求。”
应该指出的是,谷歌并不是在一个完全没有Java的环境下工作。举例来说,其中的一个OHA(开放手机联盟)合作伙伴,摩托罗拉,已经帮助引领基于Java的移动设备开发,谷歌想要保留开发人员熟悉的 Java编程经验。谷歌是JCP(Java标准制定组织)执行委员会的成员之一,但只是负责监管运行在个人电脑和服务器上的标准版和企业版Java,而不是手机和其它设备的移动版Java.
Android平台工程总监Steve Horowitz 说:“我们团队里有专人活跃在Java社区,他们一直在帮助告诉并指导我们,这保证我们做的是工作是Java社区的开发人员所熟悉的。”
进一步支离破碎吗?
但更大的问题是谷歌的努力是否会恶化本已已经支离破碎地的Java领域。并非所有的手机都支持Java标准,所以程序员不能肯定的是他们开发的软件是否将可以运行在多种设备上,就像Java承诺的那样:编写一次,随处使用。
Trolltech 公司的首席技术顾问Benoit Schillings对我的朋友Maggie Reardon说:“他们(谷歌)使用Java,但他们却没有开发出任何著名的Java框架。他们真正创造的是另一种Java标准。这带来的风险是有可能使Java 市场更加支离破碎。” Trolltech 公司主要向既开个人发电脑又开发手机程序的程序员销售软件工具和程序组件。
移动电话视频流公司Movidity的首席执行官Mauro Lollo 以同样的观点看待谷歌所作的工作,他说:“从本质上讲,他们(谷歌)创造了另一种Java标准。这个标准毫无疑问是伟大,但面临的挑战是目前的已有的Java标准太多了,”
谷歌还面临着共同的风险,即开放源代码软件开,软件开放性将意味着程序员可以按照不同并且不兼容的方向开发项目。(事实上,这是Sun最初抵制将 Java做成开源软件的一个原因。)Schillings 说:“最后,可能有20种不同版本互不兼容的Android技术。因为任何人都可以拿到许可并修改它,创造出另一个版本的Android,” 就其本身而言,Sun支持将Java技术和开放源码软件应用于移动设备上,但关于加入谷歌的开放手机联盟(OHA),Sun采取了谨慎的态度,其软件部执行副总裁Rich Green表示:“我们有兴趣加入到谷歌的联盟中来,但首先我们要弄清楚这个组织的需要承担的责任。”
在问到是否存在Android同Java标准制定组织(Java Community Process)合并的可能性时,Horowitz说:“OHA是一个开放的联盟,我们欢迎任何想加入我们的人,”
Android的优势
姑且不谈技术政治,谷歌很明显对Android寄予厚望。并且希望外界能成为该发展计划的一部分。
谷歌在Android手机上市前一年就已经发布了Android的SDK,与此形成鲜明对比的是苹果公司,后者计划在2月份,也就是iPhone上市后半年才为iPhone发布一个软件开发开发包。
对此,Horowitz 说:“我们正努力尽早提供Android的SDK,这使得我们得到问题反馈的时候仍然有时间对软件进行修改。人们往往直到产品发布的时候才公布SDK,但是这次我们认为Android平台如此的重要以致于我们很早就发布了SDK.”
当然,尽早发布SDK还有另一个好处:开放源代码社区可以帮助开发基于Android的更有趣的手机应用软件,这使得Android电话不仅仅只有一些基本的功能。
Horowitz表示,到目前为止效果很好,并指出在同列在谷歌的开源项目网站code.google.com上的其它项目相比,人们对Android表示出来的兴趣是'空前绝后'的。Horowitz 补充说:“这比谷歌迄今为止经历过的任何事情都令人激动。”
有关该Android SDK的一些细节:
◆该SDK中提到支持移动电话网络的首要技术——GSM移动电话网络,但对于是否支持其头号竞争对手,高通公司的CDMA网络,SDK中并没有明确说明。对此,Horowitz表示,Android会支持CDMA网络的,CDMA联盟比如高通公司也是OHA的成员。 Horowitz说:“很显然,有些事情我们还在运作中,但目前我们不会谈论对CDMA的具体的支持。”
◆OHA支持触控屏技术,Horowitz除了表示第一版Android SDK.不会支持多重触控技术之外,拒绝对Android SDK支持多重触控技术发表任何其它评论,多重触控技术是iPhone的一个引人注目的功能,它使用户界面更加友好。
◆一旦程序开发人员开始反馈Android SDK的信息后,谷歌根据这些反馈信息,不久就会发布一个新版本的Android SDK.Horowitz说:“我们向开发人员承诺一个定期发布周期。”
◆开发的软件应该能在中等手机硬件上运行速度很快,比如那些具有200MHz ARM 9处理器的手机。Horowitz 说:“该工程的一个主要目标是确保我们的软件能够在运行绝大多数的手机上,不需要手机具有高端的处理器,当然,在高性能处理器上运行时,将会给你带来更加刺激的体验。”
◆目前,该SDK只能应用于开发运行在基于Java的软件,而不是基于硬件本身。Horowitz说:“我们也意识到了人们对本地应用开发的兴趣,对此我们目前不发表任何评论,”但是,效率应该不是问题,“我们系统的设计原则就是在性能要求严格的领域充分利用本地代码, 并且通过我们的框架 API函数也体现了上述设计原则。”