提及碎片化,想必是 Android 开发者颇为头疼的问题。一直以来,Android 系统包含了大量下游补丁以及各种供应商/设备的内核树,这在无形之中增加了系统的维护难度和碎片化。
为了逐步解决此类问题,近几年,Google 迅速改变策略也想尽了办法,包括将越来越多的代码递交到上游,同时逐渐转向使用 Android Generic Kernel Image(GKI,Android 通用内核映像)作为所有产品内核的基础,进一步减少碎片化。
展望未来,当前的 Google 正在实施一种“上游优先”的方法,将功能引入到 Android 系统前之际首先将其推到上游的主线内核中。
日前,Google 的软件工程师 Todd Kjos 在 Linux Plumbers Conference(LPC2021)峰会上谈及 Google 的 GKI 计划,并表示借助 Android 12 以及基于 Linux 5.10 的 GKI 镜像,Google 已经将碎片化减少到基本消除的状态。在 Android 12 GKI 中,大部分供应商/OEM 内核功能要么进入上游内核,要么被孤立在供应商模块中,要么合并到 Android Common Kernel。
所谓“新功能的上游优先开发模型”,简单来看,就是让新代码首先进入主线 Linux 内核,而不是直接将目标放在 Android 源代码树中。
对此,Google 还承诺“努力将 Android 通用内核中的所有 out-of-tree 补丁上传到上游”。
参考:https://www.phoronix.com/scan.php?page=news_item&px=Android-Linux-Upstream-First