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