虽然谷歌的 Pixel 设备在上个月率先收到了 Android 16 更新,但首款搭载这一新系统发布的设备却并非来自谷歌。出人意料的是,这一荣誉归属了三星。该公司本月发布了全新的 Z Fold 和 Z Flip 设备,预装的是基于 Android 16 的 One UI 8,距离 Android 16 正式发布仅过去了一个月。这个快速的更新节奏是三星的一大进步,而这背后得益于其在 One UI 开发方式上的重大调整。以下是三星所做的改变。

传统上,谷歌使用的是基于分支的开发模式来构建 Android。每发布一个新版本,谷歌就会创建一个独立的代码分支,持续添加新功能,直到开发冻结进入发布阶段。随后,这个新分支会被合并回 Android 的主内部开发分支中。

虽然这种做法在表面上看起来合乎逻辑,但对于像 Android 这样复杂的项目来说,这种方法会带来严重的问题。合并两个庞大的代码库往往很难顺利进行,通常会引发“合并冲突”——也就是各种错误和不一致,这些问题需要耗费宝贵的工程时间来解决。即使是将一些由外部公开开发的组件(比如蓝牙协议栈)的代码合并回主内部开发分支时,也会出现类似的冲突。这正是谷歌如今将 Android 完全转为私下开发的一个关键原因。
基于分支的开发模式还阻碍了新功能的开发。如果某个功能在发布日期前尚未完成,开发人员就不得不将未完成的代码合并回主分支,处理由此产生的各种冲突,然后再在下一个版本的分支中继续开发。这种低效的循环延缓了开发进度,也浪费了本可以用于打磨功能本身的时间。
为了解决这些问题,谷歌转向了“主干式开发模型”(trunk-based development)。现在,所有开发工作都集中在一个必须始终保持稳定的 Android 主内部分支中,这个项目被谷歌称为“Trunk Stable”。为实现这一目标,所有的新功能、API 和漏洞修复都被放置在“功能开关”(feature flags)之后进行开发。这种方式允许它们先被包含在代码中,但在对外发布时可以保持关闭状态,直到功能开发完整并准备好上线为止。

谷歌表示,“Trunk Stable” 模型帮助其加快了 Android 的发布节奏,使 Android 16 能够在 6 月发布,而不是按照以往的 8 月至 10 月时间窗口。虽然 Android 16 是首个完全受益于这一新开发模式的重要版本,但它并不是首个在该模式下发布的版本。这个头衔属于 2024 年 3 月发布的 Android 14 QPR2。
鉴于这一变革的重大意义,以及众多 OEM 厂商对 Android 的深度定制,我们不禁想知道,像三星这样的公司是否会采纳这一新模式。去年 10 月,我曾就此问题采访了谷歌 Android 平台的副总裁兼总经理 Seang Chau,他表示谷歌正在与合作伙伴合作,确保他们尽可能贴近 Trunk Stable 模型。尽管他当时没有点名具体厂商,但三星随后确认,已将 One UI 的开发方式转向主干式开发模型。
在本月 Galaxy Unpacked 结束后的媒体圆桌会上,三星 MX(Mobile eXperience)事业部框架研发负责人、执行副总裁 Sally Hyesoon Jeong 向记者表示,三星现在基于自有的单一开发分支进行开发。谷歌并不强制像三星这样的 OEM 厂商采用这种做法,因为它们拥有独立的开发流程,只需接收 Android 底层平台代码即可。然而,三星看到了 Trunk Stable 带来的好处,便将 One UI 的开发转向这一新模式。事实上,三星甚至与谷歌共同参与了这一新开发模式的设计过程。

Jeong 还表示,正是得益于 Trunk Stable 模型,三星才能在 Android 16 发布后如此迅速地推出 One UI 8。她称,公司未来的目标是与谷歌的发布节奏保持同步,以尽可能快地将最新的 Android 版本带到旗下设备上。三星是否能持续保持这一速度还有待时间验证,但我们希望它能做到,因为 One UI 7 推送时的延迟曾让不少忠实用户感到不满。