簡單的Android編程功能說明介紹
Google通過與運(yùn)營商、設(shè)備制造商、開發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,這時(shí)對(duì)象數(shù)據(jù)庫Android編程功能簡單、可靈活適應(yīng)未來變化的優(yōu)點(diǎn)就顯現(xiàn)出來了。
Google推出了他的手機(jī)平臺(tái)——Android,Google做什么都會(huì)引來無數(shù)人的眼球,并總能創(chuàng)造出非凡的奇跡。相信這次他推出這個(gè)手機(jī)平臺(tái),應(yīng)該會(huì)吸引到無數(shù)開發(fā)人員的眼球,甚至?xí)芏嘤凶R(shí)之士轉(zhuǎn)向手機(jī)開發(fā)。
因?yàn)橄鄬?duì)于現(xiàn)有的其他平臺(tái),手機(jī)可是一塊尚未充分開拓的新大陸,Android又是新中之新,機(jī)會(huì)要多很多。似乎是為了加速這個(gè)過程,Google還舉辦了“Android 開發(fā)者大賽”,獎(jiǎng)金總額高達(dá)1000萬美元。
在這次Beijing Open Party上,我們有幸認(rèn)識(shí)了一位經(jīng)驗(yàn)豐富的技術(shù)專家和兩位db4o(注:著名對(duì)象數(shù)據(jù)庫,主要應(yīng)用在嵌入式設(shè)備平臺(tái))的核心開發(fā)人員。InfoQ中文站特邀編輯仝健對(duì)三位進(jìn)行了采訪,請(qǐng)他們從開發(fā)者角度談一下對(duì) Android編程功能的認(rèn)識(shí)和感覺。
三位受訪者的履歷:
屠程遠(yuǎn)(以下簡稱屠):94年畢業(yè),一直從事軟件編程工作。掌握匯編、C、C++、Delphi、.NET、Java等語言及架構(gòu),主要從事操作系統(tǒng)底層和軟件框架的編程工作。rcpandroid項(xiàng)目owner。
張黃矚(以下簡稱張):自由職業(yè)者,Apache Harmony的committer, db4o 核心開發(fā)人員, P-Unit項(xiàng)目作者,熟悉java語言,應(yīng)用程序架構(gòu)設(shè)計(jì),測(cè)試驅(qū)動(dòng)開發(fā),以及增量重構(gòu)代碼。
楊普(以下簡稱楊): Apahce Harmony PMC(Project Management Committee) 成員, committer,主要興趣是編程語言,敏捷方法,開源軟件和社區(qū)。 InfoQ中文站: 我們知道,Android是基于Java的,那么目前它支不支持其他語言呢?
其實(shí)我們不能說Android是基于java的。對(duì)于開發(fā)者而言,Android支持使用java語言語法編程,注意,不是支持 Java,而是Java語言語法,因?yàn)?font size="-0">Android支持的Java語法類庫僅僅是J2SE 5的子集,并無通過任何java標(biāo)準(zhǔn)認(rèn)證。Android講代碼編譯為Dalvik虛擬機(jī)字節(jié)碼來運(yùn)行。目前Android官方僅支持java編程語法。
是的,Java是Sun的注冊(cè)商標(biāo),只有通過了相關(guān)規(guī)范的兼容性測(cè)試才能叫做Java,Android的Dalvik虛擬機(jī)和相關(guān)類庫也不承諾遵守任何Java規(guī)范,有關(guān)這個(gè)問題,Apache Board的成員,MIT的stefano mazzocchi有一篇非常精彩的Blog:Dalvik: how Google routed around Sun's IP-based licensing restrictions on Java ME
InfoQ中文站:那么,對(duì)Java語法編程的程序員而言,***Java 開發(fā)群體是J2EE程序員,對(duì)于一個(gè)想轉(zhuǎn)向移動(dòng)平臺(tái)開發(fā)的J2EE程序員來說,轉(zhuǎn)向Android平臺(tái)是不是一個(gè)好選擇?又會(huì)有哪些困難?
我所編程接觸過的移動(dòng)平臺(tái)支持Java的有J2ME、 BlackBerry、Android。J2ME的功能實(shí)在太有限,僅支持J2SE很小的一個(gè)子集;Android所支持J2SE的子集已經(jīng)很充分了,在 Java編程方面和J2SE相比幾乎沒什么限制。
很多開源的Java類庫僅僅需要很小的修改就能在Android上運(yùn)行。而在J2ME上要想運(yùn)用那些類庫幾乎不可能,只能重新造輪子。BlackBerry里的Java環(huán)境比J2ME要強(qiáng),但強(qiáng)的有限,基本還是無法利用現(xiàn)有眾多的J2SE的類庫。
所以對(duì)想轉(zhuǎn)到移動(dòng)平臺(tái)的J2EE程序員來說,轉(zhuǎn)向Android平臺(tái)的代價(jià)最小,所能做的事情最多。 轉(zhuǎn)向Android平臺(tái)的困難主要在于這是個(gè)全新的平臺(tái),手機(jī)硬件還沒發(fā)布,沒有實(shí)際項(xiàng)目積累和實(shí)際的運(yùn)行環(huán)境。
現(xiàn)在開發(fā)基于Andoid的應(yīng)用難免有些空中樓閣的意味,無法經(jīng)過實(shí)際運(yùn)行環(huán)境的檢驗(yàn)。也很少有客戶愿意為半年一年后還不保證能運(yùn)轉(zhuǎn)的應(yīng)用買單,所以對(duì)程序員來說會(huì)有較長的投入期。
我個(gè)人覺得這個(gè)轉(zhuǎn)型會(huì)非常容易。盡管Android編程功能支持的不是標(biāo)準(zhǔn)的 Java TM,但是已經(jīng)覆蓋了大部分的Java的語法和類庫。困難之處,我覺得可能在于開發(fā)人員對(duì)移動(dòng)設(shè)備和服務(wù)器設(shè)備的理解。
移動(dòng)設(shè)備的具有一些獨(dú)有的特性,比如電源消耗問題,屏幕大小限制,以及CPU的速度等。因此,在各個(gè)資源之間的平衡策略往往和傳統(tǒng)的服務(wù)端編程不一樣。
【編輯推薦】