Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android開源語言總結之談

Android開源語言總結之談

編輯:高級開發

android開源語言采用了軟件堆層(software stack,又名軟件疊層)的架構,主要分為三部分:底層以Linux核心為基礎,由C語言開發,只提供基本功能,下文進行說明指導。

這段話的意思是說,Google玩了一個花招,在kernel和應用程序之間,自己做了一個中間層,這樣就既不違反GPL許可,又能不讓外界看到廠商的硬件驅動和應用程序的源碼。裡面的關鍵在於,Kernel和android的許可證不一樣,前者是GPL許可證,後者是apache Software License(簡稱ASL)許可證。

GPL許可證規定,對源碼的任何修改都必須開源,所以android開源語言了,因為它修改了Kernel。而ASL許可證規定,可以隨意使用源碼,不必開源。所以建築在android之上的硬件驅動和應用程序,都可以保持封閉。為了得到更多廠商的支持,Google有意選擇了這樣做。

並且特意修改Kernel,使得原本應該包括在kernel中的某些功能,都被轉移到了userspace之中,因此得以避開開源。這樣做或許有利於推廣android,吸引廠商和軟件開發商的加入,但是Google也放棄了構建一個真正開源的手機系統的機會。

從而也就不能獲得由全世界程序員提供智慧、分享代碼、推動創新的好處。關於許可證問題的深入討論,請閱讀Ryan Paul的文章《Why Google chose the apache Software License over GPLv2 for android》。

Google的這種做法,直接後果就是給Linux Kernel帶來了麻煩。Greg Kroah-Hartman清楚地說出了自己的不滿。由於這個原因,Google也從不把大量的硬件驅動程序和平台源碼向kernel提交。實際上,它創造出了一個kernel的分支,大量的開發者都依賴那個分支。”

這就是android干的事情:它修改了Kernel,但是又不提供修改的細節,自己搞了一個封閉的系統。說得難聽一點,它利用了開源社區,要求開源社區為它做貢獻,卻又不願提供回報。所以,Linux Kernel就把android開源語言踢出去了,真是再正常不過了。人們有權利質疑,android這樣的哲學是否正確?是否符合Google“不作惡”的口號?

如果android開源語言繼續這樣封閉下去,那麼開源社區為什麼要為它免費制作軟件呢?因為我又不是在為開源社區服務。而是在為Google服務。既然這樣的話,那還不如去支持iPhone呢,至少能在軟件商店裡多賣一點錢,而且喬布斯看上去也更酷一點。

Android界面

我私底下已經說過,我願意幫助完成這項工作,在這裡我再次公開這樣說。但是如果沒有Google程序員的加入,什麼也不會發生。”android必須變成一個真正的開源系統。如果像現在這樣封閉下去,就會被開源社區拋棄,就一定不會成功,即使有Google的支持。

我接受他的批評,我確實有點感情用事。主要是因為對Google有太大的期望,所以不能接受它現在的這種做法。這一次,也許不能說Google做錯了什麼,畢竟都符合GPL許可證的要求。但是代價也是巨大的——它放棄了創造未來的機會。

我堅信,未來主流的手機操作系統一定是開源的,就像我堅信未來Linux一定勝過Windows一樣。現在,既然Google放棄了這個選擇,那麼只能等待其他人來做出開源的手機系統了。這也意味著,我們還要在黑暗中等待更久。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved