圖示:安卓是谷歌商業生態,AOSP 是開源項目
一、谷歌安卓商業生態的構成
關鍵內容:谷歌、商業約束、MADA 及商業分成牽引 GMS 云服務不分裂,ACC/CDD/MADA 及商業等手段約束的是安卓設備不分裂。
安卓在 2005 年 - 2008 年的早期階段,在整個市場環境中處于一個略微被動的狀態。
如何另辟蹊徑?作為一家純軟件公司或者互聯網公司,谷歌想要在安卓上團結到任何合作伙伴,其唯一選擇便是開源。
所以谷歌選擇用開源的形式來做手機操作系統,而且很快的團結到了各家廠商,我們記得當年第一部安卓手機是 HTC,然后很快的包括三星,包括我們國內一些公司,還有其他的供應商都開始來做各類安卓手機。所以安卓開源還是一個非常重要的、關鍵的戰略選擇。安卓不開源則毫無機會,或者說只有開源才有一絲殺出重圍的生機。
那么安卓到底是怎么一個系統呢?安卓實際上是由幾個非常重要的部分組成:
(1)第一部分叫 AOSP,即 Android Open Source Project(安卓開源項目),是在 Apache、BSD、MIT 等開源協議下發行的開源項目;
(2)第二部分是由 ACC 等協議構成的商業約束條款環境;
(3)第三部分叫 GMS,即 Google Mobile Services(谷歌移動服務),GMS 一部分是面向用戶的 APP(如 Gmail 郵件、谷歌應用商店等),一部分是用于核心后臺服務的 APK(比如地圖服務)和 GMS Core,即通常說的 Google Play 服務,提供各種谷歌專有的 API(程序編程接口)供應用商調用,這些服務的代碼都是閉源的。
簡而言之,AOSP 雖然是一個開源的系統,但 GMS 是閉源。AOSP 雖然通過開源快速團結到了眾多開發者,但并不授予硬件制造商發布谷歌專有應用程序的權利,也不授予安卓生態系統成員使用安卓標志和其他安卓相關商標的權利。
基于 AOSP 開發,且滿足 ACC 協議要求的,才能叫安卓系統,支持的硬件設備才能叫做安卓兼容設備。ACC 協議須找谷歌簽。但是是否滿足 ACC 要求,并沒有規定由谷歌進行認定。這實際就是谷歌在 AOSP 的開源項目設計上的特殊之處。
硬件制造商可以基于 AOSP 的開源協議使用代碼,但要宣稱是安卓,至少要與谷歌簽訂 ACC 和 MADA 兩項附加協議。谷歌通過 ACC 協議實現了防止安卓分裂的目的,并通過 MADA 協議實現了防止 GMS 分裂的目的。ACC+MADA 協議的組合完美實現了谷歌對安卓的控制。
ACC 協議指的是安卓兼容性承諾(Android Compatibility Commitment),ACC 協議限制了手機設備制造商可以自定義安卓的程度。具體而言,不允許原始設備制造商以自己的品牌(單獨或與安卓第三方開發者的品牌一起)生產不兼容的安卓設備。谷歌這種通過 ACC 協議限制競爭的行為,難言合理,且因違反歐盟反壟斷法已被歐洲廢止。
MADA 協議即移動應用分發協議(Mobile Application Distribution Agreement),該協議限定了手機廠商們預裝谷歌應用的方式,并規定硬件制造商以及任何第三方不能采取任何可能導致安卓分裂的行動。根據 MADA 協議,希望在手機設備中預裝 YouTube、Gmail 等谷歌應用的手機硬件廠商必須預裝整個谷歌移動應用程序包;另外,所有運行安卓的設備(包括硬件制造商沒有預裝谷歌應用程序的設備),都必須通過谷歌有全權決定權的安卓兼容性測試后才能使用安卓標識和安卓兼容性商標。
2014 年,谷歌非常自信的認為,這個世界上沒有任何人可以實現另外一套 GMS,所以它也并不阻止任何人去搞一套自己的 GMS。但這在中國并未行之有效。由于谷歌不在中國開啟任何和谷歌帳號相關的服務,所以 MADA 協議自然也對中國廠商的國內市場無效。國行手機基本上都不附帶 GMS,少數預裝了 GMS 的國行手機也未經谷歌授權。在中國市場,小米、OPPO、VIVO、華為這些廠商都沒有用 GMS,整個中國的移動互聯網生態也活得好好的,甚至有很多地方的多樣性、商業價值和模式創新還優于全球。盡管如此,ACC 和 MADA 在除歐洲以外的海外市場余威尚存,中國的安卓硬件廠商的海外市場仍難逃被谷歌限制的命運。
OHA 是安卓生態又一個非常重要的配套,在谷歌開源生態建設中功不可沒。那么 OHA 又是什么呢?OHA 是 Open Hardset Alliance 的縮寫,是谷歌主導構建的開放手機聯盟。谷歌通過給予 OHA 成員享有安卓第一手資料的特權,把整個手機領域所有的重要角色(如三星、高通、德州儀器等)都吸引到了 OHA 這個圈子里,包括運營商、手機整機商,包括芯片公司、軟件公司,包括后面的方案公司,這些公司實際上都是整個手機產業鏈里頭非常關鍵的角色。這里面離開了誰都不行,他們通過 OHA 獲得了優先的代碼發送權限。這與公開可獲取的 Linux 不同,Linux 的文檔和演進過程都是公開的,開發者可以隨時加入郵件列表,知道 Linux 正在或將要發生什么。
谷歌上述一系列的動作,嚴控整個安卓生態于股掌之中。
二、AOSP 是遵循開源許可協議的普通開源項目
如上所述,AOSP 是谷歌在本世紀初操作系統強者云集的時代背景下,為尋求一線生機,基于 Apache 等開源協議下發行的開源項目。AOSP 開源項目代碼庫( https://source.android.com)提供的源代碼,目的就是為了將設備和應用移植到 Android 平臺,同時確保設備和應用符合兼容性要求,從而讓安卓生態系統維持良好穩健的運行環境,以便更好地服務于移動用戶。
AOSP 的上層開源許可證是 Apache 2.0 寬松開源許可證,大多數安卓軟件都使用 Apache 2.0 許可授權開發者使用。另外,除了上層使用的 Apache 寬松開源許可協議外,下層還有 BSD 寬松開源許可協議,以及 Linux 內核的 GPL2.0 強傳染性開源許可協議。根據 Apache、BSD 等寬松開源許可證,開發者可以在符合相關開源許可證的要求下,對 AOSP 開源項目中的源代碼通過復制、修改、發行的方式進行使用。
但是其 Linux 內核的 GPL 強傳染性開源許可協議,是安卓在構建自身開源生態時的攔路虎。GPL 協議大家都非常清楚,就是要求所有的后續開發以及衍生開發的源代碼,全部必須要遵照 GPL 協議進行代碼開源。如果遵照 GPL 強傳染開源許可協議,則所有的驅動也不得不開源出來。谷歌顯然無法讓所有參與生態的人(比如芯片與器件供應商)都必須去開源。從谷歌的開源生態建設考慮來看,谷歌顯然不會讓這樣的情況出現。為了開源生態構建,谷歌做了一系列巧妙的開源協議的選擇和適配,并巧妙的在使用 Linux 內核的情況下又完美的繞開了 GPL 強傳染開源許可協議,兩頭得利。
AOSP 的層級構成圖--基于原始圖片(來源于 https://source.android.com )繪制
Linux Kernel 雖然基于 GPL 2.0 開源許可證發布,但也在設計之初就設置了 GPL 許可證例外,例如在內核目錄文件 LICENSES/exceptions/linux-syscall-note 中包含 Linux 內核的 COPYING 文件中記錄的 Linux 系統調用例外,該文件用于用戶空間 API(UAPI)頭文件中。使用 Linux 內核的頭文件定義,進行系統調用的程序適用該 GPL 許可證例外。
Linux Kernel 中 GPL 與非 GPL 的分界線為 GNU glibc, 其普通的系統調用為 GNU glibc 向外暴露的系統調用接口。而安卓則將 Linux 常用的 GNU glibc 替換為 Bionic libc 類庫(改用寬松許可證 BSD),并通過該 Bionic libc 類庫暴露了更多原來在內核空間才能使用的接口,讓用戶空間的驅動能夠充分利用內核和硬件資源。
AOSP 在用戶空間和內核空間之間設置本質為用戶空間主驅動的硬件抽象層(HAL),規避 GPL 的硬件廠家把需要保護的商業機密以及知識產權相關的邏輯放在 HAL 層,以二進制包的方式發布,不需要公開源代碼。
就這樣,谷歌幫助安卓開源生態里面的應用開發者(當然包括芯片和器件供應商在內)解了 GPL 強傳染性許可協議的套,讓下游開發者放心大膽的去使用 AOSP 的開源代碼,既保護了他們的知識產權,也保護了他們的商業利益。
因此,AOSP 本質始終是開源項目,只要遵循 AOSP 規定的開源許可協議,任何開發者都可以合規的進行開源代碼使用。這個區別于安卓商業生態。
-
谷歌
+關注
關注
27文章
6161瀏覽量
105304 -
華為
+關注
關注
216文章
34411瀏覽量
251506 -
安卓
+關注
關注
5文章
2126瀏覽量
57147 -
鴻蒙系統
+關注
關注
183文章
2634瀏覽量
66308
發布評論請先 登錄
相關推薦
評論