摘要:Google 已向 Android Authority 确认,Android 操作系统的开发很快将完全转为私有,并将停止维护Android开源项目(AOSP)。从下周开始,Android的开发工作将完全转移到谷歌内部分支,AOSP的持续集成/交付(CI/CD)
震惊!谷歌的安卓要停止开源了?
据报道,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 主要在内部分支开发 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的节奏不一致,开发新功能的节奏不一致,很混乱。”
这种“分支合并冲突”可以这样理解——比如说,第三方手机厂商基于AOSP的分支开发了新功能,但遇到了BUG,而导致BUG的根源可能是由于谷歌在开发自己的OS分支的过程中一项改动引入的,那这时候,第三方手机厂商就必须等谷歌先处理完自家OS分支,封板、发布后,再将改动合并到AOSP,然后厂商再拉代码、合并这项修复、对外发布给用户,用户再更新版本,解决掉BUG。整个过程就挺漫长的。
所以谷歌干脆,统一俩分支,但是开源还是会继续开源的,只是等谷歌自己的内部分支开发完后再开源出来,对外界来说,这相当于少了一个分支,能了解到进度等信息的频率也会减少,但“好处”则是一次进度更新包含更多的信息、功能、修复。大抵如此。
普通用户就理解为,“开发版”的周更变成双周更或者月更。(这是对开发者而言的)对普通用户的使用没任何影响。
首先,普通用户 几乎不会受到影响。这项调整主要是为了让 Google 更高效地开发 Android 版本,可能会影响新版本的开发速度和 Bug 修复,但整体影响 微乎其微,不会加速 Android 更新推送到你的手机上。
而对于开发者而言,需要注意——
应用开发者(App Developers):完全不受影响,因为这只涉及 Android 平台本身的开发。平台开发者(Platform Developers):包括 自定义 ROM 开发者,也基本不会受影响。因为他们通常基于特定的 标签(tags) 或 发布分支(release branches) 进行开发,而不是 AOSP 的主分支。基于 AOSP 进行二次开发的公司:很少直接使用 AOSP 主分支,因为它通常 不够稳定,所以影响也有限。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上去,所以小米的MIUI、OPPO的手机系统都不会受到影响。
另外,知乎博主圆胖肿还点评道:对于安卓系统而言,Google是没有权力改动一些非常核心代码的。因为安卓内核是基于linux修改的安卓linux内核,因为linux的是gpl的缘故,所以这部分是强制开源的,而这部分也不被包含在aosp里面。
也就是说,安卓操作系统最核心的东西,一直都是强制开源的,受linux gpl协议所约束,至于外层的aosp,咱们只能等谷歌发布新版本。
Google 计划在本周晚些时候正式宣布这一变更,并提供更多细节。若想了解更多,可以关注下最近 source.android.com 上的新文档和公告。
参考链接:
2.https://www.androidauthority.com/google-android-development-aosp-3538503/
来源:51CTO