使用什么語言來編制Android應(yīng)用程序?
Android應(yīng)用程序最初是由Google開發(fā)的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序,Android 包括了一個(gè)核心庫(kù),該核心庫(kù)提供了JAVA編程語言核心庫(kù)的大多數(shù)功能。
“首先,Android應(yīng)用程序只能用java語言開發(fā)。其次,Google對(duì)Android采用了一種全面霸權(quán)式的管理,完全不是其他開源軟件的開發(fā)方式,一切都由Google說了算,很多地方是黑箱, 外界不得而知。”沒有想到,僅僅過了兩天,擔(dān)憂就變成了現(xiàn)實(shí)。Linux Kernel的維護(hù)者Greg Kroah-Hartman宣布,將Android 代碼從 Linux kernel 代碼庫(kù)中刪除。
這意味著,Linux Kernel的開發(fā)小組不認(rèn)可Android的貢獻(xiàn),兩者產(chǎn)生了沖突。消息公布以后,外界普遍覺得驚訝和可惜。好不容易,才有了一個(gè)這么受歡迎的開源手機(jī)系統(tǒng),應(yīng)該齊心協(xié)力、共同開發(fā)才對(duì),為什么要“窩里斗”呢?到底是什么矛盾,使得Linux Kernel小組剔除Android代碼呢?
Greg Kroah-Hartman寫了一篇詳細(xì)的文章,解釋這個(gè)決定。下面就來看看,他是怎么說的,以及Android到底是一個(gè)什么樣的系統(tǒng)。在這之前,你最好知道Greg Kroah-Hartman是誰。他是目前Linux Kernel的核心開發(fā)人員,負(fù)責(zé)stable軟件包的發(fā)布。
就是說,每一個(gè)新版本的Linux Kernel,都是經(jīng)過他的手流出來的。此外,他還負(fù)責(zé)硬件驅(qū)動(dòng)的部署。而他的手機(jī)就是HTC G1,每天都在使用。所以,他是絕對(duì)有資格談?wù)撨@個(gè)問題的。
他的看法代表了Linux社區(qū)對(duì)Android的看法。這就是說,與Ubuntu、Debian、Redhat這樣的傳統(tǒng)Linux發(fā)行版相比,只有系統(tǒng)的底層結(jié)構(gòu)是一樣的,其他東西在Android 里都不一樣,尤其是程序員的編程接口是完全不同的。
因此,Android應(yīng)用程序都必須重新寫過,現(xiàn)存的Linux程序無法移植上去。所以,從嚴(yán)格意義上說,Android是一種全新的系統(tǒng),它與Linux的距離,比Mac OS與Linux的距離還要遠(yuǎn)。
它解決了長(zhǎng)期令手機(jī)制造商頭痛不已的問題:業(yè)界缺乏一個(gè)開源的Java虛擬機(jī),以及統(tǒng)一的應(yīng)用程序接口?,F(xiàn)在,程序員只要寫一次程序,就能在各種手機(jī)硬件平臺(tái)之上使用。”這段話解釋了,為什么Android應(yīng)用程序,都必須用Java語言開發(fā)。因?yàn)椴贿@樣做的話,沒法讓程序做到硬件無關(guān)。
且慢,這真的是理由嗎?傳統(tǒng)的Linux系統(tǒng),也并不依賴特定的硬件啊!只要把源代碼根據(jù)不同的平臺(tái),分別編譯一下,同一個(gè)程序不也照樣可以在不同的硬件架構(gòu)、不同的Linux發(fā)行版中使用嗎?
【編輯推薦】






