模块化系统组件与扩展SDK框架
模块化系统组件的引入
Android 10引入了模块化系统组件(Modular System Components),允许在正常的Android发布周期之外更新终端用户的设备。这些组件部分使用APEX容器格式(Android 10引入),部分使用APK格式。模块化架构使得系统组件能够根据需要更新关键错误修复和其他改进。
扩展SDK框架的发布
新的扩展SDK(Extension SDK)框架现已公开,旨在简化开发者对模块化系统组件的集成。
模块化系统组件的应用实例
Google计划通过API组件化来推动新功能的发布。例如,新的Privacy Sandbox测试版已向Android 13设备推出,而无需等待下一个Android版本。此外,模块化组件还旨在将现有功能回溯到运行较旧Android版本的设备上。例如,Android 13引入的PhotoPicker API也可用于Android 11和12,这得益于模块化系统组件。
SDK扩展框架的使用
使用新的SDK扩展框架,开发者可以轻松检查某个功能是否在设备上可用,并在其应用中条件性地启用该功能。例如,PhotoPicker API的官方文档指出,它从Android 13开始可用,也在运行Android R(11)扩展2的设备上可用。开发者可以通过以下代码检查SDK扩展版本是否满足API的最低要求:
fun isPhotoPickerAvailable(): Boolean {
return SdkExtensions.getExtensionVersion(VERSION_CODES.R) >= 2
}在SDK扩展之前,开发者可以通过检查Build.VERSION.SDK_INT的值(例如Build.VERSION.SDK_INT >= 33)来确保最低SDK级别可用。虽然这种方法仍然正确且受支持,但对于运行SDK级别低于33但R扩展版本>=2的设备,这种检查会失败。
SDK扩展API与Jetpack Compose的集成
Google表示,SDK扩展API将进一步与Jetpack Compose集成,使其使用更加符合习惯。
模块化系统组件与Google Play服务的比较
模块化系统组件与Google Play服务的意图相似,都是为了使Android设备更容易更新而无需新的操作系统发布。两者的关键区别在于,模块化系统组件是Android开源平台(AOSP)的一部分,而Play服务是专有解决方案,仅适用于Google和许可合作伙伴。作为AOSP的一部分,模块化系统组件可以通过第三方OTA基础设施交付,而Google Play将是Google和许可合作伙伴的默认交付方式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。