Google Android會(huì)使Java領(lǐng)域支離破碎?
相反,谷歌試圖獨(dú)立提高開(kāi)放手機(jī)聯(lián)盟 (Open Handset Alliance)的手機(jī)中使用的軟件的性能和開(kāi)放性.這意味著,程序設(shè)計(jì)員們將有一個(gè)新的Java技術(shù)可以用來(lái)編程,谷歌周一宣布了一項(xiàng)價(jià)值一千萬(wàn)美元的Android應(yīng)用軟件開(kāi)發(fā)大賽以吸引開(kāi)發(fā)精英參與.
一個(gè)顯著不同是谷歌自己開(kāi)發(fā)的Java虛擬機(jī)內(nèi)核技術(shù) (JVM),稱(chēng)為Dalvik,該Java虛擬機(jī)在Android手機(jī)上執(zhí)行Java程序.谷歌表示,即使在手機(jī)的限制性硬件上,Dalvik也能使 Java程序運(yùn)行得很快.與我們通常使用的Java虛擬機(jī)的一個(gè)顯著的區(qū)別就是, Android并不屬于Sun公司在1999年成立的Java標(biāo)準(zhǔn)制定組織(Java Community Process, 簡(jiǎn)稱(chēng)JCP)的一部分.
JCP負(fù)責(zé)處理和審批各種Java技術(shù)和技術(shù)規(guī)范,將新的Java特點(diǎn)系統(tǒng)化為應(yīng)用程序編程接口(API),所以程序員可以有一個(gè)標(biāo)準(zhǔn)的方式調(diào)用新的技術(shù),比如藍(lán)牙技術(shù)或三維圖形.但現(xiàn)有的Java的技術(shù)不能滿(mǎn)足谷歌公司認(rèn)為對(duì)于Android平臺(tái)很重要的開(kāi)放性要求.
致力于 Android平臺(tái)開(kāi)發(fā)的谷歌高級(jí)工程師Mike Cleron 說(shuō):“我們希望該平臺(tái)以多種不同的方式開(kāi)放.我們的想法是,誰(shuí)都可以在已有的Android軟件上,甚至及其細(xì)微的層面上進(jìn)行二次開(kāi)發(fā)和替換.現(xiàn)有的 Java APIs并沒(méi)有達(dá)到我們希望在Android上達(dá)到的開(kāi)放性要求.”
應(yīng)該指出的是,谷歌并不是在一個(gè)完全沒(méi)有Java的環(huán)境下工作.舉例來(lái)說(shuō),其中的一個(gè)OHA(開(kāi)放手機(jī)聯(lián)盟)合作伙伴,摩托羅拉,已經(jīng)幫助引領(lǐng)基于Java的移動(dòng)設(shè)備開(kāi)發(fā),谷歌想要保留開(kāi)發(fā)人員熟悉的 Java編程經(jīng)驗(yàn).谷歌是JCP(Java標(biāo)準(zhǔn)制定組織)執(zhí)行委員會(huì)的成員之一,但只是負(fù)責(zé)監(jiān)管運(yùn)行在個(gè)人電腦和服務(wù)器上的標(biāo)準(zhǔn)版和企業(yè)版Java,而不是手機(jī)和其它設(shè)備的移動(dòng)版Java.
Android平臺(tái)工程總監(jiān)Steve Horowitz 說(shuō):“我們團(tuán)隊(duì)里有專(zhuān)人活躍在Java社區(qū),他們一直在幫助告訴并指導(dǎo)我們,這保證我們做的是工作是Java社區(qū)的開(kāi)發(fā)人員所熟悉的.”
進(jìn)一步支離破碎嗎?
但更大的問(wèn)題是谷歌的努力是否會(huì)惡化本已已經(jīng)支離破碎地的Java領(lǐng)域.并非所有的手機(jī)都支持Java標(biāo)準(zhǔn),所以程序員不能肯定的是他們開(kāi)發(fā)的軟件是否將可以運(yùn)行在多種設(shè)備上,就像Java承諾的那樣:編寫(xiě)一次,隨處使用.
Trolltech 公司的首席技術(shù)顧問(wèn)Benoit Schillings對(duì)我的朋友Maggie Reardon說(shuō):“他們(谷歌)使用Java,但他們卻沒(méi)有開(kāi)發(fā)出任何著名的Java框架.他們真正創(chuàng)造的是另一種Java標(biāo)準(zhǔn).這帶來(lái)的風(fēng)險(xiǎn)是有可能使Java 市場(chǎng)更加支離破碎.” Trolltech 公司主要向既開(kāi)個(gè)人發(fā)電腦又開(kāi)發(fā)手機(jī)程序的程序員銷(xiāo)售軟件工具和程序組件.
移動(dòng)電話視頻流公司Movidity的首席執(zhí)行官M(fèi)auro Lollo 以同樣的觀點(diǎn)看待谷歌所作的工作,他說(shuō):“從本質(zhì)上講,他們(谷歌)創(chuàng)造了另一種Java標(biāo)準(zhǔn).這個(gè)標(biāo)準(zhǔn)毫無(wú)疑問(wèn)是偉大,但面臨的挑戰(zhàn)是目前的已有的Java標(biāo)準(zhǔn)太多了,”
谷歌還面臨著共同的風(fēng)險(xiǎn),即開(kāi)放源代碼軟件開(kāi),軟件開(kāi)放性將意味著程序員可以按照不同并且不兼容的方向開(kāi)發(fā)項(xiàng)目.(事實(shí)上,這是Sun最初抵制將 Java做成開(kāi)源軟件的一個(gè)原因.)Schillings 說(shuō):“最后,可能有20種不同版本互不兼容的Android技術(shù).因?yàn)槿魏稳硕伎梢阅玫皆S可并修改它,創(chuàng)造出另一個(gè)版本的Android,” 就其本身而言,Sun支持將Java技術(shù)和開(kāi)放源碼軟件應(yīng)用于移動(dòng)設(shè)備上,但關(guān)于加入谷歌的開(kāi)放手機(jī)聯(lián)盟(OHA),Sun采取了謹(jǐn)慎的態(tài)度,其軟件部執(zhí)行副總裁Rich Green表示:“我們有興趣加入到谷歌的聯(lián)盟中來(lái),但首先我們要弄清楚這個(gè)組織的需要承擔(dān)的責(zé)任.”
在問(wèn)到是否存在Android同Java標(biāo)準(zhǔn)制定組織(Java Community Process)合并的可能性時(shí),Horowitz說(shuō):“OHA是一個(gè)開(kāi)放的聯(lián)盟,我們歡迎任何想加入我們的人,”
Android的優(yōu)勢(shì)
姑且不談技術(shù)政治,谷歌很明顯對(duì)Android寄予厚望.并且希望外界能成為該發(fā)展計(jì)劃的一部分.
谷歌在Android手機(jī)上市前一年就已經(jīng)發(fā)布了Android的SDK,與此形成鮮明對(duì)比的是蘋(píng)果公司,后者計(jì)劃在2月份,也就是iPhone上市后半年才為iPhone發(fā)布一個(gè)軟件開(kāi)發(fā)開(kāi)發(fā)包.
對(duì)此,Horowitz 說(shuō):“我們正努力盡早提供Android的SDK,這使得我們得到問(wèn)題反饋的時(shí)候仍然有時(shí)間對(duì)軟件進(jìn)行修改.人們往往直到產(chǎn)品發(fā)布的時(shí)候才公布SDK,但是這次我們認(rèn)為Android平臺(tái)如此的重要以致于我們很早就發(fā)布了SDK.”
當(dāng)然,盡早發(fā)布SDK還有另一個(gè)好處:開(kāi)放源代碼社區(qū)可以幫助開(kāi)發(fā)基于Android的更有趣的手機(jī)應(yīng)用軟件,這使得Android電話不僅僅只有一些基本的功能.
Horowitz表示,到目前為止效果很好,并指出在同列在谷歌的開(kāi)源項(xiàng)目網(wǎng)站code.google.com上的其它項(xiàng)目相比,人們對(duì)Android表示出來(lái)的興趣是'空前絕后'的.Horowitz 補(bǔ)充說(shuō):“這比谷歌迄今為止經(jīng)歷過(guò)的任何事情都令人激動(dòng).“
有關(guān)該Android SDK的一些細(xì)節(jié):
◆該SDK中提到支持移動(dòng)電話網(wǎng)絡(luò)的首要技術(shù)---GSM移動(dòng)電話網(wǎng)絡(luò),但對(duì)于是否支持其頭號(hào)競(jìng)爭(zhēng)對(duì)手,高通公司的CDMA網(wǎng)絡(luò),SDK中并沒(méi)有明確說(shuō)明.對(duì)此,Horowitz表示,Android會(huì)支持CDMA網(wǎng)絡(luò)的,CDMA聯(lián)盟比如高通公司也是OHA的成員. Horowitz說(shuō):“很顯然,有些事情我們還在運(yùn)作中,但目前我們不會(huì)談?wù)搶?duì)CDMA的具體的支持.”
◆OHA支持觸控屏技術(shù),Horowitz除了表示第一版Android SDK.不會(huì)支持多重觸控技術(shù)之外,拒絕對(duì)Android SDK支持多重觸控技術(shù)發(fā)表任何其它評(píng)論,多重觸控技術(shù)是iPhone的一個(gè)引人注目的功能,它使用戶(hù)界面更加友好.
◆一旦程序開(kāi)發(fā)人員開(kāi)始反饋Android SDK的信息后,谷歌根據(jù)這些反饋信息,不久就會(huì)發(fā)布一個(gè)新版本的Android SDK.Horowitz說(shuō):“我們向開(kāi)發(fā)人員承諾一個(gè)定期發(fā)布周期.”
◆開(kāi)發(fā)的軟件應(yīng)該能在中等手機(jī)硬件上運(yùn)行速度很快,比如那些具有200MHz ARM 9處理器的手機(jī).Horowitz 說(shuō):“該工程的一個(gè)主要目標(biāo)是確保我們的軟件能夠在運(yùn)行絕大多數(shù)的手機(jī)上,不需要手機(jī)具有高端的處理器,當(dāng)然,在高性能處理器上運(yùn)行時(shí),將會(huì)給你帶來(lái)更加刺激的體驗(yàn).”
◆目前,該SDK只能應(yīng)用于開(kāi)發(fā)運(yùn)行在基于Java的軟件,而不是基于硬件本身.Horowitz說(shuō):“我們也意識(shí)到了人們對(duì)本地應(yīng)用開(kāi)發(fā)的興趣,對(duì)此我們目前不發(fā)表任何評(píng)論,”但是,效率應(yīng)該不是問(wèn)題,“我們系統(tǒng)的設(shè)計(jì)原則就是在性能要求嚴(yán)格的領(lǐng)域充分利用本地代碼, 并且通過(guò)我們的框架 API函數(shù)也體現(xiàn)了上述設(shè)計(jì)原則.” 藍(lán)牙技術(shù)相關(guān)文章:藍(lán)牙技術(shù)原理
評(píng)論