服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

使用 SDK 扩展,进一步简化开发流程

日期: 来源:Android 开发者收集编辑:Android

作者 / 软件工程师 Anton Hansson


Android 10 及以上版本支持模块化系统组件,这些组件便于我们在主要 API 级别版本之外加快 Android 生态系统的功能和安全更新速度,并使新功能向后兼容已经发布的 Android 版本。此类改进有助于提高开发工作的灵活性,同时扩大应用开发者的开发范围。为此,我们已经构建了一个全新的 Extension SDK 框架来与这些 API 集成。现在,我们将发布 Extension SDK 的首个公开版本 (Extension Level 4)。


  • 模块化系统组件

https://source.android.google.cn/docs/core/ota/modular-system?hl=zh-cn



加快 API 和功能的引入速度



开发者引入主要 API 级别版本之外的新功能后,可以更快地实现创新。正如之前的博文所述,自今年起,我们计划在 Android 13 设备上推出首个 Android 隐私沙盒 Beta 版。如此一来,您便可开始使用 Extension SDK 将解决方案与 AdServices API 集成,以便为有限的生产测试做好准备。您可以访问官方文档,进一步了解如何参与隐私沙盒 Beta 版的开发工作,以及如何借助测试设备或模拟器设置开发环境。

  • 博文
https://android-developers.googleblog.com/2022/11/preparing-for-android-privacy-sandbox-beta.html
  • 推出首个 Android 隐私沙盒 Beta 版

http://developer.android.google.cn/design-for-safety/privacy-sandbox/program-overview?version=beta

  • 官方文档: 进一步了解相关内容

http://developer.android.google.cn/design-for-safety/privacy-sandbox/program-overview?version=beta



向后兼容性



我们还可以利用 Extension SDK 将某些平台功能的支持扩展到现有 Android 版本,进而扩大用户覆盖范围。例如,以前只有 API 级别 33 (Android 13) 及以上版本可以访问照片选择器 API,而现在,搭载 R 扩展版本 2 及以上版本的设备也可以通过 Extension SDK 向后兼容至 API 级别 30 (Android 11)。


  • 照片选择器 API

https://developer.android.google.cn/training/data-storage/shared/photopicker



检查 API 的可用性



为了帮助您确定扩展 API 的可用性,我们在 API 参考文档中添加了额外信息,说明 API 适用的 API 级别和最低扩展版本。例如,适用于 ACTION_PICK_IMAGES 的 API 参考文档指出,该 API 可在 "Android R 扩展版本 2" 及以上版本中使用。

  • ACTION_PICK_IMAGES

https://developer.android.google.cn/reference/android/provider/MediaStore#ACTION_PICK_IMAGES


在运行时,您可以采用类似于 Build.VERSION.SDK_INT 通常用来检查 Android 版本的方式查询扩展的版本。例如,如果您需要验证 PhotoPicker API 的可用性,请使用全新 API SdkExtensions.getExtensionVersion。R 扩展使用与 R 对应的版本代码 (30):
https://developer.android.google.cn/reference/android/os/ext/SdkExtensions#getExtensionVersion(int)
fun isPhotoPickerAvailable(): Boolean {    return SdkExtensions.getExtensionVersion(VERSION_CODES.R) >= 2  }

或者,您也可以通过 Build.VERSION.SDK_INT 检查版本,如下所示:

fun isPhotoPickerAvailable(): Boolean {    return Build.VERSION.SDK_INT >= 33  }

这种检查依然是安全且准确的,但此函数将会在 API 现已可用的部分设备上返回 False。因此,在检查 API 的可用性时,SDK_INT 检查并非最佳选择,扩展版本检查更为合适。此外,SDK_INT >= 33 的所有设备上的 R 扩展版本 >= 2,但对于某些 SDK_INT < 33 的设备而言,其 R 扩展版本 >= 2。


类似地,AdServices API 参考文档可能会指出 "已在广告服务扩展 4 中添加此 API"。广告服务扩展使用 SdkExtensions.AD_SERVICES 常量。该可用性检查如下所示:
fun isAdServicesAvailable(): Boolean {    return SdkExtensions.getExtensionVersion(SdkExtensions.AD_SERVICES) >= 4  }

为了方便开发者,我们还将扩展 Jetpack,使其更易与扩展版本搭配使用。例如,您可以使用 Jetpack 库函数来检查 PhotoPicker 的可用性,该函数对条件版本检查进行了抽象化处理。我们希望发布更多 Jetpack 库 (如在隐私沙盒中发布隐私保护 API),以便帮助开发者正确使用通过 Extension SDK 发布的 API。


  • Jetpack 库函数来检查 PhotoPicker 的可用性

https://developer.android.google.cn/reference/kotlin/androidx/activity/result/contract/ActivityResultContracts.PickVisualMedia#isPhotoPickerAvailable()



工具支持



为帮助确保应用质量,我们为 Android Lint 的 NewApi 检查添加了扩展版本工具支持。借助 Android Studio Flamingo,该工具可以为使用 SDK 扩展启动的 API 自动生成正确的版本检查。您完全可以自行选择是否使用这些全新版本检查,但采用此类检查有助于开发者进一步广泛采纳新的 API。



深入了解 SDK 扩展



我们刚刚步入 SDK 扩展开发者旅程,并且计划在未来推出更多功能。您可以立即在 SDK 管理器中获取最新 SDK 扩展 4。请访问隐私沙盒 Beta 版和照片选择器,详细了解 SDK 扩展及相关文档。也欢迎您持续关注我们,及时了解更多开发技术和产品更新等资讯动态。

  • 隐私沙盒 Beta 版

http://developer.android.google.cn/design-for-safety/privacy-sandbox/program-overview?version=beta

  • 照片选择器

https://developer.android.google.cn/training/data-storage/shared/photopicker

  • SDK 扩展
https://developer.android.google.cn/sdkExtensions



推荐阅读

如页面未加载,请刷新重试

 点击屏末 阅读原文 | 即刻了解 SDK 扩展更多相关信息




相关阅读

  • K2 编译器将在 Kotlin 2.0 中进入稳定状态

  • 我们一直在为 Kotlin 编译器(代号 K2)开发新的前端。前端是编译器的一部分,负责解析代码和执行语义分析、数据流分析、调用解析和类型推断。这是开发者与编译器交互最多的部分
  • 2023 年,不想用 360 浏览器,如何用 Flash?

  • 2023 年,如何玩 4399 的 Flash 小游戏?而且,我不想用某数字的浏览器,也不想用“特供版本”的 Flash,最好还能绕开繁琐的设置,一键使用。今天就来解决这个问题。01复活 Flash2020

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 使用 SDK 扩展,进一步简化开发流程

  • 作者 / 软件工程师 Anton HanssonAndroid 10 及以上版本支持模块化系统组件,这些组件便于我们在主要 API 级别版本之外加快 Android 生态系统的功能和安全更新速度,并使新功能
  • 全世界最倒霉的名字,归这个男人所有

  • 近日,哥伦比亚46岁男子René Martínez Gutiérrez荣登各大西语媒体社会版头条。定居美国的他,今年年初因父亲病重返老家波哥大。谁知他刚下飞机就被国际刑警带走,父亲病逝,他人
  • 为什么日本高中禁止在JK下穿长裤?

  • 日本女高中生在制服短裙下面加穿一条长裤,很可能是在违反校规。雅虎论坛上,充斥着想不通“为什么不能裙下穿裤”的女高中生。她们写下亲身经历昭示后果,包括但不限于:一经发现被
  • 为什么荷兰的男性总是当街尿尿?

  • 荷兰的风景雅致而奇特。如果你沿着城中的运河漫步,能赏到从容驶过的游船,观览黄金时代的建筑;也能见到岸边墨绿铁皮的小亭,里面还有哥们开闸撒尿,在地上亲切地给你描绘荷兰地图。
  • 在武汉租了套60层公寓,以为自己上了太空电梯

  • 在武汉想租或者买套新点的电梯公寓,60层高的房源四处可见,30层高的房源反倒是稀缺品。上海的房子,一般容积率超过2.4就会被认为是不宜居,而在武汉2.5仍旧属于低容积率。这些房子