模块化系统组件
模块化系统组件
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 机制)将其推送到最终用户设备。模块软件包会以原子方式安装(和回滚),这意味着所有需要更新的模块都会进行更新,或者所有模块都不会进行更新。例如,如果某个需要更新的模块出于某种原因无法更新,则设备不会安装软件包中的任何模块。
可用模块
Android 10 包含以下模块。
模块名称 | 软件包名称 | 类型 |
---|---|---|
com.android.runtime.release.apex |
APEX |
|
com.android.captiveportallogin |
APK |
|
com.android.conscrypt |
APEX |
|
com.android.resolv |
APEX |
|
com.android.documentsui |
APK |
|
com.android.ext.services |
APK |
|
com.android.media.swcodec |
APEX |
|
com.android.media |
APEX |
|
com.android.modulemetadata |
APK |
|
com.android.networkstack.permissionconfig |
APK |
|
com.android.networkstack |
APK |
|
com.android.permissioncontroller |
APK |
|
com.android.tzdata |
APEX |