Android 10 或更高版本采用模块化方式来处理一些 Android 系统组件,使其能够在 Android 的常规发布周期外的时间进行更新。最终用户设备可以从 Google Play 商店基础架构或通过合作伙伴提供的无线下载 (OTA) 机制接收这些模块化系统组件的更新。
关于模块化系统组件
利用模块化系统组件,Google 和 Android 合作伙伴能够以非侵入方式广泛、快速、无缝地向最终用户设备分发更新。例如,媒体编解码器碎片和严重错误可能会显著降低应用的采用率和用户互动度。经常更新媒体相关模块可以减少编解码器碎片,使媒体应用在不同 Android 设备上的行为更加一致,并且可以修复严重 bug,以建立用户信任。
Android 12 中的更新
新模块
对现有模块的更新
以下文档介绍了针对 Android 12 版本所做的模块特定更改。
模块 | 变更 |
---|---|
adbd | 更新了模块边界。 |
DocumentsUI | 停用了文件浏览功能。 |
ExtServices |
|
媒体 | 添加了新的媒体组件。 |
NNAPI 运行时 | 更新了模块边界。 |
PermissionController |
|
SDK 扩展 |
|
Statsd | 更新了模块边界。 |
网络共享 |
|
时区数据 | 更新了包格式。 |
Wi-Fi | 更新了模块边界。 |
架构
Android 10 或更高版本会将选定的系统组件转换为模块,其中一些模块采用 APEX 容器格式(在 Android 10 中引入),另一些则采用 APK 格式。借助模块化架构,系统组件能够根据需要以修复严重 bug 以及做出其他改进的方式进行更新,而不会影响较低级别的供应商实现或较高级别的应用和服务。
图 1. 模块化系统组件
模块更新不会引入新的 API。它们仅使用由兼容性测试套件 (CTS) 保证的 SDK 和系统 API,并且只会彼此之间进行通信,且只使用稳定的 C API 或稳定的 AIDL 接口。
您可以将更新后的模块化系统组件打包在一起,并通过 Google(使用 Google Play 商店基础架构)或 Android 合作伙伴(使用合作伙伴提供的 OTA 机制)将其推送到最终用户设备。模块软件包会以原子方式安装(和回滚),这意味着所有需要更新的模块都会进行更新,或者所有模块都不会进行更新。例如,如果某个需要更新的模块出于某种原因无法更新,设备不会安装软件包中的任何模块。
可用模块
Android 包含以下模块。
模块名称 | 软件包名称 | 类型 | 推出的版本 |
---|---|---|---|
adbd | com.android.adbd |
APEX | Android 11 |
ART | com.android.art |
APEX | Android 12 |
强制门户登录 | com.android.captiveportallogin |
APK | Android 10 |
CellBroadcast | com.android.cellbroadcast |
APEX | Android 11 |
Conscrypt | com.android.conscrypt |
APEX | Android 10 |
设备调度 | com.android.scheduling |
APEX | Android 12 |
DNS 解析器 | com.android.resolv |
APEX | Android 10 |
DocumentsUI | com.android.documentsui |
APK | Android 10 |
ExtServices | com.android.ext.services |
APK (Android 10)
APEX (Android 11) |
Android 10 |
IPsec/IKEv2 库 | com.android.ipsec |
APEX | Android 11 |
媒体编解码器 | com.android.media.swcodec |
APEX | Android 10 |
媒体 | com.android.media |
APEX | Android 10(提取器、MediaSession API)
Android 11 (MediaParser API) |
MediaProvider | com.android.mediaprovider |
APEX | Android 11 |
ModuleMetadata | com.android.modulemetadata |
APK | Android 10 |
网络堆栈权限配置 | com.android.networkstack.permissionconfig |
APK | Android 10 |
网络组件 | com.android.networkstack |
APK | Android 10 |
NNAPI 运行时 | com.android.neuralnetworks |
APK | Android 11 |
PermissionController | com.android.permissioncontroller |
APK | Android 10 |
SDK 扩展 | com.android.sdkext |
APEX | Android 11 |
Statsd | com.android.os.statsd |
APEX | Android 11 |
网络共享 | com.android.tethering |
APK | Android 11 |
时区数据 | com.android.tzdata |
APEX | Android 10 |
Wi-Fi | com.android.wifi.apex |
APEX | Android 11 |