Android 10 或更高版本将一些 Android 系统组件模块化,并使其能够在正常的 Android 发布周期之外进行更新。最终用户设备可以从 Google Play 商店基础架构或通过合作伙伴提供的无线 (OTA) 机制接收对这些模块化系统组件的更新。
关于模块化系统组件
模块化系统组件使 Google 和 Android 合作伙伴能够以非侵入式的方式将更新广泛、快速、无缝地分发到最终用户设备。例如,媒体编解码器碎片和严重错误的结合会显着降低应用程序的采用率和用户参与度。频繁更新媒体相关模块可以减少编解码器碎片,使媒体应用程序在不同 Android 设备上的行为更加一致,并修复关键错误以建立用户信任。
建筑学
Android 10 或更高版本将选定的系统组件转换为模块,其中一些使用APEX 容器格式(在 Android 10 中引入),其中一些使用 APK 格式。模块化架构使系统组件能够根据需要通过关键错误修复和其他改进进行更新,而不会影响较低级别的供应商实施或较高级别的应用程序和服务。
图 1.模块化系统组件
模块更新不会引入新的 API。它们只使用兼容性测试套件 (CTS)保证的 SDK 和系统 API,只相互通信,只使用稳定的 C API 或稳定的 AIDL 接口。
更新的模块化系统组件可以打包在一起,并由 Google(使用 Google Play 商店基础架构)或 Android 合作伙伴(使用合作伙伴提供的 OTA 机制)推送到最终用户设备。模块包以原子方式安装(并回滚);要么更新所有需要更新的模块,要么不更新任何模块。
可用模块
模块名称 | 包裹名字 | 类型 | 发布介绍 |
---|---|---|---|
广告服务 | 多 | 多 | 安卓 13 |
亚行 | com.android.adbd | 顶尖 | 安卓 11 |
应用搜索 | com.android.appsearch | 顶尖 | 安卓 13 |
艺术 | com.android.art | 顶尖 | 安卓 12 |
蓝牙 |
| 顶尖 | 安卓 13 |
小区广播 | com.android.cellbroadcast | 顶尖 | 安卓 11 |
加密货币 | com.android.conscrypt | 顶尖 | 安卓 10 |
设备调度 | com.android.scheduling | 顶尖 | 安卓 12 |
DNS解析器 | com.android.resolv | 顶尖 | 安卓 10 |
文档界面 | com.android.documentsui | APK | 安卓 10 |
外部服务 | com.android.ext.services | APK (安卓 10) 顶点(安卓 11) | 安卓 10 |
IPsec/IKEv2 库 | com.android.ipsec | 顶尖 | 安卓 11 |
媒体 | 媒体: com.android.media 媒体编解码器: com.android.media.swcodec | 顶尖 | Android 10(提取器、MediaSession API) Android 11(媒体解析器 API) |
媒体提供者 | com.android.mediaprovider | 顶尖 | 安卓 11 |
模块元数据 | com.android.modulemetadata | APK | 安卓 10 |
网络堆栈 | 网络栈权限配置: com.android.networkstack.permissionconfig 强制门户登录: com.android.captiveportallogin 网络组件: com.android.networkstack | APK | 安卓 10 |
NNAPI 运行时 | com.android.neuralnetworks | APK | 安卓 11 |
OnDevicePersonalization 运行时 | 多 | 多 | 安卓 13 |
权限控制器 | com.android.permissioncontroller | APK | 安卓 10 |
SDK 扩展 | com.android.sdkext | 顶尖 | 安卓 11 |
统计数据 | com.android.os.statsd | 顶尖 | 安卓 11 |
网络共享 | com.android.tethering | APK | 安卓 11 |
时区数据 | com.android.tzdata | 顶尖 | 安卓 10 |
超宽带 | com.android.uwb | 顶尖 | 安卓 13 |
无线上网 | com.android.wifi | 顶尖 | 安卓 11 |