輕輕松松的學(xué)習(xí)Android組成框架
Android組成框架為Google企業(yè)戰(zhàn)略的重要組成部分,將進(jìn)一步推進(jìn)"隨時隨地為每個人提供信息"這一企業(yè)目標(biāo)的實(shí)現(xiàn)。
Google的目標(biāo)是讓移動通訊不依賴于設(shè)備甚至平臺。出于這個目的,Android將補(bǔ)充,而不會替代Google長期以來奉行的移動發(fā)展戰(zhàn)略。通過與全球各地的手機(jī)制造商和移動運(yùn)營商結(jié)成合作伙伴,開發(fā)既有用又有吸引力的移動服務(wù),并推廣這些產(chǎn)品。
Android組成框架的一個重要特點(diǎn)就是它的應(yīng)用框架和GUI庫都用Java語言實(shí)現(xiàn)。Android內(nèi)部有一個叫作Dalvik的Java虛擬機(jī),Java程序由這個虛擬機(jī)解釋運(yùn)行。Android平臺的應(yīng)用程序也必須用Java語言開發(fā)。網(wǎng)上有評論說Android的虛擬機(jī)使用Apache的Harmony類庫。
Harmony類庫是Apache組織開發(fā)的開源 Java類庫,用Apache許可證發(fā)布。Android應(yīng)用框架采用了Mash-up的組件模型:組件(Activity) 向系統(tǒng)注冊自己的功能。每個組件要使用其它組件的服務(wù)時提出自己的要求(intent),系統(tǒng)根據(jù)intent在已登記的組件中確定合適的組件。Android平臺的API文檔很完善。
基于Android平臺開發(fā)應(yīng)用軟件應(yīng)該是一件輕松、愉快的事情。但是,選擇Android平臺存在以下問題:
Google目前只開放了SDK。
即應(yīng)用軟件的開發(fā)接口,沒有開放中間件的源代碼。在沒有源代碼的情況下,也可以把Android移植到兼容的開發(fā)板(CPU核采用ARMv5指令集)上,但因?yàn)椴荒芏ㄖ贫鵁o法將其用于實(shí)際產(chǎn)品。
Google現(xiàn)在沒有明確什么時候發(fā)布中間件的源代碼。其實(shí)Google也沒有明確說過將發(fā)布中間件的源代碼。Google說Android是“the first complete, open, and free mobile platform”。在英文中“free”既可以解釋成“自由”,也可以解釋成“免費(fèi)”。
如何解釋完全在于Google。我覺得Google最想抓住的是 應(yīng)用軟件的開發(fā)者,即希望公司和個人都學(xué)習(xí)它的SDK,為它的平臺開發(fā)應(yīng)用軟件。Google肯定會和廠家合作,開發(fā)支持Android平臺的手機(jī)。但 Google是否會在網(wǎng)絡(luò)上完全開放中間件代碼,還是個未知數(shù)。
如果Google完全開放這個平臺,那么與J2ME類似,各公司肯定會在這個平臺上添加自己的擴(kuò)展,使各平臺不能完全兼容。所以,Google很可能用商業(yè)手段來保證Android平臺的一致性。Android的設(shè)計很漂亮,但是否實(shí)用還有待實(shí)踐檢驗(yàn)。Android使用Java既可以利用Java的平臺無關(guān)性,又可以降低應(yīng)用軟件的開發(fā)難度。
但無論怎么優(yōu)化,Java程序的速度是肯定不如原生代碼的。Google的Mash-up的思想雖然不算新穎,但在嵌入式環(huán)境中投入實(shí)用,也是一個新的嘗試。設(shè)計總有取舍,Google的選擇是否合理,還需要實(shí)踐檢驗(yàn)。
在沒有源代碼的情況下,也可以把Android移植到兼容的開發(fā)板(CPU核采用ARMv5指令集)上,但因?yàn)椴荒芏ㄖ贫鵁o法將其用于實(shí)際產(chǎn)品。Google現(xiàn)在沒有明確什么時候發(fā)布中間件的源代碼。其實(shí)Google也沒有明確說過將發(fā)布中間件的源代碼。
Google說Android組成框架是“the first complete, open, and free mobile platform”。在英文中“free”既可以解釋成“自由”,也可以解釋成“免費(fèi)”。如何解釋完全在于Google。我覺得Google最想抓住的是 應(yīng)用軟件的開發(fā)者,即希望公司和個人都學(xué)習(xí)它的SDK。
為它的平臺開發(fā)應(yīng)用軟件。Google肯定會和廠家合作,開發(fā)支持Android平臺的手機(jī)。但 Google是否會在網(wǎng)絡(luò)上完全開放中間件代碼,還是個未知數(shù)。如果Google完全開放這個平臺,那么與J2ME類似,各公司肯定會在這個平臺上添加自己的擴(kuò)展,使各平臺不能完全兼容。所以,Google很可能用商業(yè)手段來保證Android平臺的一致性。
【編輯推薦】