編輯:高級開發
android應用程序是由Java語言開發的也只能用Java語言開發,Google對android采用了一種全面霸權式的管理,完全不是其他開源軟件的開發方式,一切都由Google說了算,很多地方是壟斷形式的。
外界不得而知。”沒有想到,僅僅過了兩天,擔憂就變成了現實。Linux Kernel的維護者Greg Kroah-Hartman宣布,將android 代碼從 Linux kernel 代碼庫中刪除。這意味著,Linux Kernel的開發小組不認可android的貢獻,兩者產生了沖突。消息公布以後。
外界普遍覺得驚訝和可惜。好不容易,才有了一個這麼受歡迎的開源手機系統,應該齊心協力、共同開發才對,為什麼要“窩裡斗”呢?到底是什麼矛盾,使得Linux Kernel小組剔除android代碼呢?
Greg Kroah-Hartman寫了一篇詳細的文章,解釋這個決定。下面就來看看,他是怎麼說的,以及android到底是一個什麼樣的系統。在這之前,你最好知道Greg Kroah-Hartman是誰。他是目前Linux Kernel的核心開發人員,負責stable軟件包的發布。
就是說,每一個新版本的Linux Kernel,都是經過他的手流出來的。此外,他還負責硬件驅動的部署。而他的手機就是HTC G1,每天都在使用。所以,他是絕對有資格談論這個問題的,他的看法代表了Linux社區對android的看法。首先,他指出android和其他的Linux發行版不一樣:
這就是說,與Ubuntu、Debian、Redhat這樣的傳統Linux發行版相比,只有系統的底層結構是一樣的,其他東西在android 裡都不一樣,尤其是程序員的編程接口是完全不同的。因此,android應用程序都必須重新寫過,現存的Linux程序無法移植上去。所以,從嚴格意義上說,android是一種全新的系統,它與Linux的距離,比Mac OS與Linux的距離還要遠。
它解決了長期令手機制造商頭痛不已的問題:業界缺乏一個開源的Java虛擬機,以及統一的應用程序接口。現在,程序員只要寫一次程序,就能在各種手機硬件平台之上使用。”
這段話解釋了,為什麼android應用程序,都必須用Java語言開發。因為不這樣做的話,沒法讓程序做到硬件無關。且慢,這真的是理由嗎?傳統的Linux系統,也並不依賴特定的硬件啊!只要把源代碼根據不同的平台,分別編譯一下,同一個程序不也照樣可以在不同的硬件架構、不同的Linux發行版中使用嗎?
這下問題來了:如果你是硬件廠商,希望你的硬件能在 Linux kernel 下運作,那麼就必須要有驅動程序。如果驅動程序的程序代碼公開,等於硬件規格也公開的差不多了。許多廠商不願意這麼做,所以就提供編好的驅動程序,但不提供原始碼。
android 的重點就是商業應用,Google采用了一些手法來繞過這問題。他們把驅動程序移到 "userspace",也就是說,把驅動程序變成在 Linux kernel 上頭跑,而不是一起跑的東西,這樣就可以避過GPL。然後,在 kernel 這邊開個小門,讓本來不能直接控制到硬件的 "userspace" 程序也可以碰得到,這樣只要把"開個小門"的程序代碼公布就行啦。”
報告中寫道:“android是首款受到強力消費品牌青睐的Linux操作系統,而他背後的這只強力推手則是谷歌。”報告並承認Android仍然處在不成熟的發展階段,不過他們
項目要用到一個listvIEw,要求是可以顯示圖片,後面還有有復選框。先新建一個MyAdapter類,繼承自BaseAdapter。在MyAdapter中實現對數據的綁
android手機操作系統基本特征包括內部集成浏覽器 該浏覽器基於開源的WebKit 引擎,優化的圖形庫 包括2D和3D圖形庫,3D圖形庫基於OpenGL ES 1.0
Google的開源android移動操作系統正在席卷全球智能手機市場,和蘋果不一樣,它對那些想將應用程序提交到iPhone App Store的開發人員有著嚴格的指導方