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