OTA 更新
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
正常使用的 Android 设备可以接收和安装系统、应用软件和时区规则的无线下载 (OTA) 更新。本部分介绍了更新软件包的结构以及所提供的用于构建更新软件包的工具。这些内容专供有以下需求的开发者参考:需要将 OTA 更新用于新的 Android 设备以及需要为已发布的设备构建更新软件包。
OTA 更新旨在升级底层操作系统、system 分区上安装的只读应用和/或时区规则;这些更新不会影响用户从 Google Play 安装的应用。
A/B(无缝)系统更新
在现代 Android 设备中,每个分区都存在两个副本(A 和 B)。当系统运行但处于空闲状态时,设备会将更新应用到当前未使用的分区。A/B 设备不需要空间来下载更新软件包,因为它们可以在从网络中读取更新的同时应用更新,这称为“流式传输 A/B”。如需详细了解 A/B 设备的 OTA 更新,请参阅 A/B(无缝)系统更新。如需查看示例应用以了解如何使用 Android 系统更新 API(即 update_engine
)安装 A/B 更新,请参阅 SystemUpdaterSample(updater_sample/README.md
中提供了应用详情)。
非 A/B 系统更新
老款 Android 设备可在专用的 recovery 分区中使用软件解压下载的更新软件包并将更新应用到其他分区。如需了解详情,请参阅非 A/B 系统更新。
时区规则更新
从 Android 8.1 开始,OEM 可以将更新的时区规则数据推送至设备,而不必进行系统更新。此机制使用户能够及时获得更新(从而延长 Android 设备的使用期限),并且使 OEM 能够独立于系统映像更新来测试时区更新。如需了解详情,请参阅时区规则。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2022-10-03。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2022-10-03\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2022-10-03。"]]