谷歌将完全私下开发安卓操作系统,原因在此

谷歌将完全私下开发安卓操作系统,原因在此

img

Mishaal Rahman / Android Authority

TL;DR

  • 谷歌已向《Android Authority》确认,安卓操作系统的开发将很快完全在私下进行。
  • 目前,谷歌在公共AOSP Gerrit上分享了部分工作,但未来所有这些工作都将在私下完成。
  • 这一私有化的目的是简化安卓操作系统开发,而不是阻碍外部开发人员,这也是谷歌在每次发布后仍致力于将源代码发布到AOSP的原因。

无论制造商是谁,每一部安卓手机都有一个共同点:其软件基础。制造商可以大幅定制他们在安卓设备上发布的安卓操作系统的外观和感觉,但在底层,核心系统功能源自同一个开源基础:安卓开源项目。在超过16年后,谷歌正在对安卓开源版本的开发方式进行重大改变,以简化其开发流程。

你正在阅读一篇权威洞察故事。发现更多独家报道、应用拆解、泄露信息以及你无法在其他地方找到的深度科技报道。

安卓开源项目,简称AOSP,是谷歌在Apache 2.0许可证下发布的操作系统。Apache 2.0是一种软件许可证,允许任何人使用、分发或修改基于AOSP的操作系统,无需支付任何许可费用或发布源代码。这种宽松的许可结构促进了AOSP的广泛采用,导致了定制分支的创建,如三星的One UI。

像许多其他开源项目一样,AOSP接受第三方开发者的代码贡献。然而,谷歌自行进行大部分AOSP开发,因为它将“安卓项目视为一个完整的规模产品开发运营”,以“确保安卓作为一个平台和一个开源项目的活力”。因此,谷歌对哪些代码可以合并到AOSP以及何时发布新版本源代码拥有最终决定权。公司私下开发AOSP组件,以便“让开发者和OEM厂商使用一个安卓版本,而无需跟踪未完成的未来工作,只是为了跟上进度”。

img

Mishaal Rahman / Android Authority

安卓开源项目的主页截图。

为了平衡AOSP的开放性与其产品开发策略,谷歌维护了两个主要的安卓分支:公共AOSP分支和其内部开发分支。AOSP分支对任何人开放,而谷歌的内部分支仅限于与谷歌移动服务(GMS)许可协议的公司使用。

尽管一些操作系统组件(如安卓的蓝牙堆栈)在AOSP分支中公开开发,但大多数组件,包括核心安卓操作系统框架,都在谷歌的内部分支中私下开发。谷歌向《Android Authority》确认,它将很快将所有安卓操作系统开发转移到其内部分支,这一变化旨在简化其开发流程。

为了简化安卓操作系统开发,谷歌将不再有两个“主要”分支

由于谷歌在其内部分支中开发了安卓的大部分内容,公共AOSP分支通常远远落后于私下可用的内容。当比较干净的AOSP构建和谷歌最新安卓16测试版(从其内部分支构建)之间的功能和API可用性时,这种差异显而易见。尽管转向基于trunk的开发减少了这种差异,但它仍然存在,并继续给谷歌带来挑战。

这种差异迫使谷歌花费时间和精力在公共AOSP分支和其内部分支之间合并补丁。由于分支之间的差异,经常出现合并冲突。例如,这个启用导航栏和键盘放大镜功能的补丁引入了一个新的辅助功能设置,该设置被放置在辅助功能设置列表的末尾。这会创建合并冲突,因为列表的长度在AOSP和谷歌内部分支之间有所不同。虽然解决这个问题的具体方法很直接,但许多其他AOSP补丁在整合到谷歌内部分支时会触发类似的合并冲突。

img

Mishaal Rahman / Android Authority

同样,开发安卓新的仅解锁存储区域API需要谷歌工程师从内部分支挑选补丁到AOSP以解决合并冲突。这是因为虽然API是在AOSP中开发的,但包含新安卓构建标志的文件是在内部开发的。因此,必须在内部提交更新构建标志文件的补丁,然后应用到AOSP。

img

Mishaal Rahman / Android Authority

很可能存在无数类似的合并冲突示例,这就是为什么谷歌正在放弃其当前的双管齐下的安卓开发策略,而是将所有开发转移到内部。

这对我们意味着什么?

谷歌向《Android Authority》确认,它致力于发布安卓的源代码,因此这一变化并不意味着安卓正在变成闭源。公司将继续发布新安卓版本的源代码,因此当谷歌今年晚些时候发布安卓16时,我们将获得更新的源代码。此外,谷歌将继续发布安卓Linux内核分支的源代码,因为它是在GPLv2许可下发布的,要求发布源代码,并且与AOSP是分开的。

将要改变的是特定安卓组件的公共源代码发布的频率。一些组件,如构建系统、更新引擎、蓝牙堆栈、虚拟化框架和SELinux配置,目前是AOSP优先的,这意味着它们完全在公共中开发。大多数安卓组件,如核心操作系统框架,主要在内部开发,尽管一些功能(如仅解锁存储区域API)仍然在AOSP中开发。

img

Mishaal Rahman / Android Authority

AOSP Gerrit的截图,谷歌使用的基于网络的代码审查系统。

从下周开始,所有安卓开发都将在谷歌的内部分支中进行,并且只有当谷歌发布包含这些更改的新分支时,才会发布更改的源代码。由于这已经是大多数安卓组件更改的实践,谷歌只是将其开发工作整合到一个分支中。

这一变化对普通用户的影响最小。虽然它简化了谷歌的安卓操作系统开发,可能会影响新版本开发的速度和减少漏洞的速度,但总体影响可能难以察觉。因此,不要期望这一变化会加速你手机的操作系统更新。

这一变化对大多数开发人员的影响也很小。应用程序开发人员不受影响,因为这仅涉及平台开发。平台开发人员,包括那些构建自定义ROM的人,大多也会看到很少的变化,因为他们通常基于特定的标签或发布分支进行工作,而不是主要的AOSP分支。同样,发布分叉AOSP产品的公司很少使用主要的AOSP分支,因为其固有的不稳定性。

img

Mishaal Rahman / Android Authority

LineageOS 22.2基于AOSP android-15.0.0_r20发布标签,该标签包含2025年3月季度发布的最新更改。

喜欢阅读或贡献AOSP的外部开发人员可能会对这一消息感到失望,因为它减少了他们对谷歌开发工作的洞察。如果没有GMS许可证,贡献安卓操作系统开发将更具挑战性,因为可用代码将始终落后数周或数月。这一消息也将使一些开发人员更难以跟上新的安卓平台更改,因为他们将不再能够跟踪AOSP中的更改。

对于记者来说,这一变化意味着获得可能泄露信息的渠道减少,因为AOSP补丁通常提供了对谷歌开发计划的见解。例如,我在AOSP中发现的代码更改在正式发布数月前就揭示了Pixel的网络摄像头功能。同样,我利用AOSP中的线索推断出安卓16的早期发布时间,而我上周发现的一个现已删除的代码更改首次公开提到了即将发布的谷歌Pixel 10。尽管这些类型的泄露可能并未触发这一变化,但它无疑会影响我们对即将发布的安卓功能和设备的报道能力。


最终,我认为这一变化是合理的,即使谷歌的这一举措看起来不太好。谷歌在这里有三个选择:维持现状、将所有开发转移到内部,或将所有开发公开。考虑到谷歌私下开发安卓的既定理由及其最近转向基于trunk的开发,其决定将工作整合到一个内部分支下,简化操作系统开发和源代码发布的决定是可以理解的。

谷歌将在本周晚些时候宣布这一变化时分享更多细节。如果你想了解更多,请务必关注source.android.com上的公告和新文档。

有消息要透露吗?和我们聊聊! 通过电子邮件与我们的工作人员联系:news@androidauthority.com。你可以选择保持匿名,也可以获得信息的署名权,由你决定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值