SDK 扩展模块用于确定设备的扩展 SDK 级别,并提供供应用查询扩展 SDK 级别的 API。此模块是可更新的,这意味着它可在 Android 常规发布周期外的时间接收功能更新。
SDK 扩展模块包含以下组件。
bin/derive_sdk
- 此原生二进制文件在设备启动过程的早期运行,会读取其他模块的元数据,以设置与扩展 SDK 相关的系统属性(例如build.version.extensions.r
)。javalib/framework-sdkextension.jar
- 此文件位于 bootclasspath 中,用于向应用公开用于查询扩展 SDK 级别的 API。
模块格式
SDK 扩展模块 (com.android.sdkext
) 采用 APEX 格式,适用于搭载 Android 11 或更高版本的设备。
派生扩展 SDK 级别
derive_sdk
程序可读取作为二进制 protobuf 文件存储在每个 APEX 模块内的 etc/sdkinfo.binarypb
子路径中的元数据。如需详细了解 protobuf 结构,请参阅 sdk.proto 文件。
读取扩展 SDK 级别
SDK 扩展模块在 android.os.ext
软件包中公开了 SdkExtensions Java 类。使用 getExtensionVersion(int)
方法可读取 SDK 扩展的版本(例如 getExtensionVersion(Build.VERSION_CODES.R)
)。