

Google开始在Android 15支持16 KB分页大小,发布开发者测试选项和模拟器支持,为之后16 KB分页大小设备做准备
为了提升操作系统整体性能,Google在Android 15增加支持16 KB分页大小,这也会是第一个支持16 KB分页大小的Android版本。由于ARM架构处理器在设计时考虑多种分页大小,因此Android要支持16 KB分页大小,主要是为了适应ARM的功能。分页是操作系统管理内存的基本单位,大多数现代CPU都是支持4 KB分页大小,因此过去Android操作系统和应用程序也都是针对4 KB分页大小优化。
大多数CPU中处理器具有一个称为内存管理单元(Memory Management Unit,MMU)的硬件组件,负责管理虚拟内存和物理内存间的地址转换,而这种转换与分页大小密切相关,当应用程序需要更多内存的时候,操作系统就需要介入,并填写分页表格条目,将内存分配给进程。
所以当Android支持的分页大小从4 KB增至16 KB,分页大小增至4倍,内存分配的管理工作量也就相对应降低,这让系统可以把更多时间用于运算视频、游戏和操作系统等工作。Google特别说明,分页大小与处理器32比特/64比特模式的应用程序二进位界面(Application Binary Interface,ABI)概念不同。
ABI涉及处理器位宽,直接影响应用程序存取和操作数据的方式,而分页大小是操作系统管理内存的策略,所以当应用程序调整为不依赖特定分页大小,同一个应用程序的二进位文件,就可以在支持4 KB和16 KB分页大小的设备上运作。Google重新设计了Android 15的底层,因此开始能够支持不同页面大小运作,以实现分页大小无关性。
分页大小的变动牵涉范围广泛,涵盖操作系统、文件系统、内存管理和Linux内核等层面,而对Android开发者来说,应用程序的代码和相依项目都需要重新编译和调整,才能在兼容于16 KB分页大小的设备上正确运作,而且因为大多数应用程序和SDK原生代码是针对4 KB分页建置,需要重新对齐,确保兼容4 KB和16 KB设备。
从Android 15 QPR1 Beta版本开始,Pixel 8和Pixel 8 Pro将提供开发人员选项,可切换16 KB和4 KB分页大小。针对16 KB页面建置的应用程序,只需使用不同Linux内核,相同二进位文件就能适用于4 KB和16 KB。因此Google加入一种包含额外Linux内核的方法,运用增量压缩方法,每个分页大小的核心版本约占12-16 MB。另外,即便开发者没有ARM设备,现在也可以在x86_64模拟器,以4 KB模式模拟16 KB分页大小支持。