震驚!谷歌的安卓要停止開源了?
據(jù)報(bào)道,Google 已向 Android Authority 確認(rèn),Android 操作系統(tǒng)的開發(fā)很快將完全轉(zhuǎn)為私有,并將停止維護(hù)Android開源項(xiàng)目(AOSP)。從下周開始,Android的開發(fā)工作將完全轉(zhuǎn)移到谷歌內(nèi)部分支,AOSP的持續(xù)集成/交付(CI/CD)工具和Android Gerrit可能也將關(guān)閉。
不過,這并不意味著安卓將成為閉源系統(tǒng)!
目前,Google 仍會(huì)在 AOSP(Android 開源項(xiàng)目)的公共 Gerrit 代碼庫(kù)中共享部分開發(fā)工作,但未來,這些工作將全部在內(nèi)部進(jìn)行。
Google 之所以做出這一調(diào)整,并非為了阻礙外部開發(fā)者,而是為了簡(jiǎn)化Android OS 的開發(fā)流程。因此,Google 仍承諾在每次發(fā)布后,將 Android 的源代碼公開至 AOSP。
無論廠商是誰,每款 Android 手機(jī)都有一個(gè)共同點(diǎn):它們的軟件基礎(chǔ)。雖然不同廠商可以深度定制 Android 設(shè)備的外觀和體驗(yàn),但底層核心系統(tǒng)功能仍然基于同一個(gè)開源項(xiàng)目——AOSP。經(jīng)過 16 年的發(fā)展,Google 正在對(duì) Android 開源版本的開發(fā)方式進(jìn)行重大調(diào)整,以優(yōu)化其開發(fā)流程。
Google 關(guān)閉 AOSP 主要開發(fā)分支的原因
由于 Google 主要在內(nèi)部分支開發(fā) Android,AOSP 的公共分支通常會(huì)嚴(yán)重滯后于內(nèi)部開發(fā)分支。
這種差異在 AOSP 純凈版本與 Google 最新的 Android 16 Beta 之間尤為明顯,后者基于內(nèi)部分支構(gòu)建。Google 近年采用了干線開發(fā)模式(trunk-based development),以減少分支間的差異,但仍然存在挑戰(zhàn)。
目前,Google 需要投入大量時(shí)間和精力,將公共 AOSP 分支的補(bǔ)丁合并到內(nèi)部分支。
由于兩者之間存在較大差異,這些合并工作經(jīng)常引發(fā)沖突。例如:
- 無障礙設(shè)置沖突:某個(gè)用于導(dǎo)航欄和鍵盤的屏幕放大功能補(bǔ)丁,在 AOSP 和 Google 內(nèi)部分支的“無障礙設(shè)置列表”中位置不同,導(dǎo)致合并時(shí)發(fā)生沖突。
- 存儲(chǔ) API 沖突:開發(fā) Android 的“僅解鎖存儲(chǔ) API”時(shí),Google 工程師需要從內(nèi)部分支挑選相關(guān)補(bǔ)丁并合并到 AOSP,因?yàn)?API 在 AOSP 公開開發(fā),而新引入的 Android 構(gòu)建標(biāo)志文件則是在內(nèi)部完成的。
類似的合并沖突可能有成千上萬例,因此 Google 計(jì)劃放棄當(dāng)前的“雙主分支”開發(fā)模式,改為完全內(nèi)部開發(fā)。
并非閉源安卓,只是開源方式有所調(diào)整
Google 表示,它仍然致力于發(fā)布 Android 的源代碼,因此這一變化并不意味著 Android 將變?yōu)殚]源。Google 仍然會(huì)為新版本的 Android 發(fā)布源代碼,比如當(dāng) Android 16 在今年晚些時(shí)候發(fā)布時(shí),我們?nèi)匀荒軌颢@得該版本的源代碼。此外,Google 也會(huì)繼續(xù)發(fā)布 Android 的 Linux 內(nèi)核分支(因其采用 GPLv2 許可證,必須公開源代碼),但這與 AOSP(Android 開源項(xiàng)目) 是分開的。
變化之處在于,一些特定 Android 組件的公共源代碼發(fā)布頻率將減少。
目前,某些組件(如 構(gòu)建系統(tǒng)、更新引擎、藍(lán)牙協(xié)議棧、虛擬化框架 以及 SELinux 配置)是 AOSP 優(yōu)先 的,也就是說,它們完全在公開環(huán)境下開發(fā)。而 Android 的大部分組件(如核心操作系統(tǒng)框架)主要在 Google 內(nèi)部開發(fā),盡管 部分功能(如僅限解鎖設(shè)備使用的存儲(chǔ) API) 仍然在 AOSP 中開發(fā)。
從 下周開始,所有 Android 開發(fā)工作都將在 Google 內(nèi)部的代碼分支中進(jìn)行,只有當(dāng) Google 發(fā)布包含這些更改的新分支時(shí),相關(guān)的源代碼才會(huì)公開。由于大多數(shù) Android 組件的變更本就采用類似的做法,Google 只是 將開發(fā)工作整合到一個(gè)單一的分支中。
有網(wǎng)友分析,谷歌此次調(diào)整開源政策的根本原因是merge conflicts,“誰讓它自己也開始做手機(jī)了呢,AOSP和自家Pixel系列手機(jī)等用的OS相當(dāng)于是兩個(gè)分支了,同時(shí)維護(hù)兩套分支的后果就是修BUG的節(jié)奏不一致,開發(fā)新功能的節(jié)奏不一致,很混亂。”
這種“分支合并沖突”可以這樣理解——比如說,第三方手機(jī)廠商基于AOSP的分支開發(fā)了新功能,但遇到了BUG,而導(dǎo)致BUG的根源可能是由于谷歌在開發(fā)自己的OS分支的過程中一項(xiàng)改動(dòng)引入的,那這時(shí)候,第三方手機(jī)廠商就必須等谷歌先處理完自家OS分支,封板、發(fā)布后,再將改動(dòng)合并到AOSP,然后廠商再拉代碼、合并這項(xiàng)修復(fù)、對(duì)外發(fā)布給用戶,用戶再更新版本,解決掉BUG。整個(gè)過程就挺漫長(zhǎng)的。
所以谷歌干脆,統(tǒng)一倆分支,但是開源還是會(huì)繼續(xù)開源的,只是等谷歌自己的內(nèi)部分支開發(fā)完后再開源出來,對(duì)外界來說,這相當(dāng)于少了一個(gè)分支,能了解到進(jìn)度等信息的頻率也會(huì)減少,但“好處”則是一次進(jìn)度更新包含更多的信息、功能、修復(fù)。大抵如此。
普通用戶就理解為,“開發(fā)版”的周更變成雙周更或者月更。(這是對(duì)開發(fā)者而言的)對(duì)普通用戶的使用沒任何影響。
用戶和開發(fā)者需要注意了
首先,普通用戶 幾乎不會(huì)受到影響。這項(xiàng)調(diào)整主要是為了讓 Google 更高效地開發(fā) Android 版本,可能會(huì)影響新版本的開發(fā)速度和 Bug 修復(fù),但整體影響 微乎其微,不會(huì)加速 Android 更新推送到你的手機(jī)上。
而對(duì)于開發(fā)者而言,需要注意——
- 應(yīng)用開發(fā)者(App Developers):完全不受影響,因?yàn)檫@只涉及 Android 平臺(tái)本身的開發(fā)。
- 平臺(tái)開發(fā)者(Platform Developers):包括 自定義 ROM 開發(fā)者,也基本不會(huì)受影響。因?yàn)樗麄兺ǔ;谔囟ǖ?標(biāo)簽(tags) 或 發(fā)布分支(release branches) 進(jìn)行開發(fā),而不是 AOSP 的主分支。
- 基于 AOSP 進(jìn)行二次開發(fā)的公司:很少直接使用 AOSP 主分支,因?yàn)樗ǔ?不夠穩(wěn)定,所以影響也有限。
AOSP:Android 開源項(xiàng)目
Android 開源項(xiàng)目(AOSP)是 Google 依據(jù) Apache 2.0 許可證發(fā)布的操作系統(tǒng)。
Apache 2.0 許可證允許任何人自由使用、分發(fā)、修改并再分發(fā)基于 AOSP 的操作系統(tǒng),而無需支付授權(quán)費(fèi)用或公開源代碼。這一寬松的許可模式促成了 AOSP 的廣泛采用,使得三星的 One UI 等定制系統(tǒng)得以誕生。
與許多其他開源項(xiàng)目一樣,AOSP 也接受來自第三方開發(fā)者的代碼貢獻(xiàn)。然而,大部分 AOSP 的開發(fā)工作仍由 Google 獨(dú)立完成,因?yàn)?Google 將 Android 視為一個(gè)完整的產(chǎn)品開發(fā)項(xiàng)目,以“確保 Android 作為平臺(tái)和開源項(xiàng)目的活力”。因此,Google 對(duì) AOSP 代碼的合并和新版本源代碼的發(fā)布時(shí)間擁有最終決定權(quán)。
Google 之所以在內(nèi)部開發(fā) AOSP 組件,是為了讓“開發(fā)者和 OEM 廠商能夠使用單一版本的 Android,而無需追蹤尚未完成的未來開發(fā)工作”。
為了在 AOSP 的開源特性和 Google 的產(chǎn)品開發(fā)策略之間取得平衡,Google 維護(hù)著兩個(gè)主要的 Android 開發(fā)分支:
- AOSP 公共分支:任何人都可以訪問
- Google 內(nèi)部開發(fā)分支:僅限持有 Google 移動(dòng)服務(wù)(GMS)授權(quán)協(xié)議的公司訪問
目前,一些操作系統(tǒng)組件(如 Android 的藍(lán)牙協(xié)議棧)仍然在 AOSP 公開開發(fā),而大多數(shù)核心組件(如 Android OS 框架)則是在 Google 內(nèi)部進(jìn)行開發(fā)。
Google 向 Android Authority 確認(rèn),它即將將所有 Android OS 開發(fā)轉(zhuǎn)移至內(nèi)部分支,以進(jìn)一步簡(jiǎn)化開發(fā)流程。
對(duì)于現(xiàn)有基于AOSP開發(fā)的小米、OPPO沒有影響
因?yàn)楣雀枳詈筮€是會(huì)繼續(xù)發(fā)布安卓代碼到AOSP上去,所以小米的MIUI、OPPO的手機(jī)系統(tǒng)都不會(huì)受到影響。
圖片
安卓?jī)?nèi)核一直都是強(qiáng)制開源的
另外,知乎博主圓胖腫還點(diǎn)評(píng)道:對(duì)于安卓系統(tǒng)而言,Google是沒有權(quán)力改動(dòng)一些非常核心代碼的。因?yàn)榘沧績(jī)?nèi)核是基于linux修改的安卓linux內(nèi)核,因?yàn)閘inux的是gpl的緣故,所以這部分是強(qiáng)制開源的,而這部分也不被包含在aosp里面。
也就是說,安卓操作系統(tǒng)最核心的東西,一直都是強(qiáng)制開源的,受linux gpl協(xié)議所約束,至于外層的aosp,咱們只能等谷歌發(fā)布新版本。
Google 計(jì)劃在本周晚些時(shí)候正式宣布這一變更,并提供更多細(xì)節(jié)。若想了解更多,可以關(guān)注下最近 source.android.com 上的新文檔和公告。
參考鏈接:
1.https://www.zhihu.com/question/1888573522948891336/answer/1888592241225885064
2.https://www.androidauthority.com/google-android-development-aosp-3538503/
3.https://www.zhihu.com/question/1888573522948891336/answer/1888598429241951565