正常使用的 Android 设备可以接收和安装系统、应用软件和时区规则的无线下载 (OTA) 更新。本部分介绍了更新软件包的结构以及所提供的用于构建更新软件包的工具。这些内容专供有以下需求的开发者参考:需要将 OTA 更新用于新的 Android 设备以及需要为已发布的设备构建更新软件包。
OTA 更新旨在升级底层操作系统、system 分区上安装的只读应用,以及时区规则;这些更新不会影响用户从 Google Play 安装的应用。
虚拟 A/B(无缝)系统更新
在更新期间,新型 Android 设备(Android 11 及更高版本)会维护每个分区的两个副本(A 和 B)。这种更新机制称为带压缩功能的虚拟 A/B。虽然旧版 A/B 更新(Android 10 及更低版本)会为每个分区保留两个副本,但虚拟 A/B 仅会为启动关键分区保留两个物理槽位。启动关键分区数据会直接写入至未使用的槽位。由于动态分区的映像大小往往要大得多,因此会将新的操作系统数据以压缩快照的形式写入。压缩快照可让设备模拟拥有两个槽位的体验,同时减少空间需求。如需详细了解虚拟 A/B OTA 更新,请参阅虚拟 A/B(无缝)系统更新。如需查看示例应用以了解如何使用 Android 系统更新 API(即 update_engine
)安装 A/B 更新,请参阅 SystemUpdaterSample(updater_sample/README.md
中提供了应用详情)。
旧版 A/B 更新和非 A/B 系统更新
旧版 A/B 更新是 Android 中的第一版 A/B 更新。此更新机制保留了每个分区的两个槽位,但缺点是每个分区都需要两倍的存储空间。如需了解详情,请参阅 A/B 系统更新。从 Android 15 开始,非 A/B 更新已废弃。如需了解详情,请参阅非 A/B 系统更新。
时区规则更新
从 Android 8.1 开始,OEM 可以将更新后的时区规则数据推送至设备,而不必进行系统更新。此机制使用户能够及时获得更新(从而延长 Android 设备的使用期限),并且使 OEM 能够独立于系统映像更新来测试时区更新。如需了解详情,请参阅时区规则。