模块化系统组件

Android 10 或更高版本采用模块化方式来处理一些 Android 系统组件,使其能够在 Android 的常规发布周期外的时间进行更新。最终用户设备可以从 Google Play 商店基础架构或通过合作伙伴提供的无线下载 (OTA) 机制接收这些模块化系统组件的更新。

关于模块化系统组件

利用模块化系统组件,Google 和 Android 合作伙伴能够以非侵入方式广泛、快速、无缝地向最终用户设备分发更新。例如,媒体编解码器碎片和严重错误可能会显著降低应用的采用率和用户互动度。经常更新媒体相关模块可以减少编解码器碎片,使媒体应用在不同 Android 设备上的行为更加一致,并且可以修复严重 bug,以建立用户信任。

Android 12 中的更新

新模块

对现有模块的更新

以下文档介绍了针对 Android 12 版本所做的模块特定更改。

模块 变更
adbd 更新了模块边界。
DocumentsUI 停用了文件浏览功能。
ExtServices
  • 添加了 DisplayHashingService
  • 更新了模块边界。
媒体 添加了新的媒体组件。
NNAPI 运行时 更新了模块边界。
PermissionController
  • 使 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