模块化系统组件

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

关于模块化系统组件

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

架构

Android 10 或更高版本会将选定的系统组件转换为模块,其中一些模块采用 APEX 容器格式(在 Android 10 中引入),另一些则采用 APK 格式。借助模块化架构,系统组件能够根据需要以修复严重 bug 以及做出其他改进的方式进行更新,而不会影响较低级别的供应商实现或较高级别的应用和服务。

模块化系统组件

图 1. 模块化系统组件

模块更新不会引入新的 API。它们仅使用由兼容性测试套件 (CTS) 保证的 SDK 和系统 API,并且只会彼此之间进行通信,且只使用稳定的 C API 或稳定的 AIDL 接口

您可以将更新后的模块化系统组件打包在一起,并通过 Google(使用 Google Play 商店基础架构)或 Android 合作伙伴(使用合作伙伴提供的 OTA 机制)将其推送到最终用户设备。模块软件包会以原子方式安装(和回滚),这意味着所有需要更新的模块都会进行更新,或者所有模块都不会进行更新。

可用模块

模块名称 软件包名称 类型 推出的版本
AdServices 多种 多种 Android 13
adbd com.android.adbd APEX Android 11
AppSearch com.android.appsearch APEX Android 13
ART com.android.art APEX Android 12
蓝牙 APEX Android 13
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

媒体编解码器:com.android.media.swcodec
APEX Android 10(提取器、MediaSession API)
Android 11 (MediaParser API)
MediaProvider com.android.mediaprovider APEXAndroid 11
ModuleMetadata com.android.modulemetadata APK Android 10
网络堆栈 网络堆栈权限配置:com.android.networkstack.permissionconfig

强制门户登录:com.android.captiveportallogin

网络组件:com.android.networkstack
APK Android 10
NNAPI 运行时 com.android.neuralnetworks APK Android 11
OnDevicePersonalization 运行时 多种 多种 Android 13
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 APEX Android 11
时区数据 com.android.tzdata APEX Android 10
UWB com.android.uwb APEX Android 13
Wi-Fi com.android.wifi APEX Android 11