編輯:高級開發
android 包括了一個核心庫,該核心庫提供了Java編程語言核心庫的大多數功能,android手機服務是一種全新的系統,它與Linux的距離,比Mac OS與Linux的距離還要遠。
我也曾經對它充滿了期待,但是後來的事態發展,令我改變了看法。前幾天,我就在網志上寫了自己的擔憂:“首先,android應用程序只能用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發行版不一樣:Google只用了kernel,別的東西都沒用。”這就是說,與Ubuntu、Debian、Redhat這樣的傳統Linux發行版相比,只有系統的底層結構是一樣的。
其他東西在android 裡都不一樣,尤其是程序員的編程接口是完全不同的。因此,android應用程序都必須重新寫過,現存的Linux程序無法移植上去。所以,從嚴格意義上說,android是一種全新的系統,它與Linux的距離,比Mac OS與Linux的距離還要遠。
裡面的關鍵在於,Kernel和android的許可證不一樣,前者是GPL許可證,後者是apache Software License(簡稱ASL)許可證。GPL許可證規定,對源碼的任何修改都必須開源,所以android開源了,因為它修改了Kernel。
而ASL許可證規定,可以隨意使用源碼,不必開源,所以建築在android之上的硬件驅動和應用程序,都可以保持封閉。為了得到更多廠商的支持,Google有意選擇了這樣做,並且特意修改Kernel,使得原本應該包括在kernel中的某些功能,都被轉移到了userspace之中,因此得以避開開源。
人們有權利質疑,android這樣的哲學是否正確?是否符合Google“不作惡”的口號?如果android繼續這樣封閉下去,那麼開源社區為什麼要為它免費制作軟件呢?因為我又不是在為開源社區服務,而是在為Google服務。既然這樣的話,那還不如去支持iPhone呢,至少能在軟件商店裡多賣一點錢,而且喬布斯看上去也更酷一點。
每一個Android設備特別是手機都提供一個撥打電話功能,但仍然需要編寫一個應用程序,給用戶一個選擇使用硬編碼的電話號碼撥打電話。本章列出了一個簡單的步驟來創建一個應用程
android系統應該是Google公司所有軟件中發展最為迅速的,相信這款android系統在與微軟與諾基亞等幾大手機運營商的抗衡中會取得良好的成績的,android系
Google的android 2.1之前曾經歷過跳票的痛苦,但現在的發布正好迎合了Nexus One的發展。看來谷歌繼續對抗蘋果的iPhone的戰爭,才剛剛開始。And
android應用程序是由Java語言開發的也只能用Java語言開發,Google對android采用了一種全面霸權式的管理,完全不是其他開源軟件的開發方式,一切都由G