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

Extension SDK 的首个公开版本发布,进一步改进开发者工具,简化开发流程。

作者 / 软件工程师 Anton Hansson

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

加快 API 和功能的引入速度

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

向后兼容性

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

7NpFsK

检查 API 的可用性

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

9ssPAP

在运行时,您可以采用类似于 Build.VERSION.SDK_INT 通常用来检查 Android 版本的方式查询扩展的版本。例如,如果您需要验证 PhotoPicker API 的可用性,请使用全新 API SdkExtensions.getExtensionVersion。R 扩展使用与 R 对应的版本代码 (30):

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 的可用性时,SDKINT 检查并非最佳选择,扩展版本检查更为合适。此外,SDKINT >= 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。

工具支持

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

mmAXa2

深入了解 SDK 扩展

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

谷饭原创编/译文章,作者:脉脉不得语,转载请注明出处来自谷饭,并加入本文链接: https://www.goofan.com/2023/03/extending-android-sdk/

(0)
脉脉不得语脉脉不得语谷饭作者
上一篇 2023年 2月 27日 上午12:19
下一篇 2023年 3月 1日 下午2:56

相关推荐

  • 不要使用 403 或 404 进行速率限制

    本文讲述了如何正确限制 Googlebot 的抓取速度。作者强调,为了减缓 Googlebot 对网站的抓取频率,有些网站所有者和 CDN 会返回 404 或其他 4xx 类别的客户端错误,但这样会对 Googlebot 不利。所有 4xx HTTP 状态码(429 除外)都会导致内容从 Google 搜索中删除;如果提供了一个带有 4xx HTTP 状态码的 robots.txt 文件,它会被认为不存在。正确的方式是使用 Search Console 暂时降低抓取速度或将 500、503 或 429 HTTP 状态代码返回给 Googlebot,以限制其抓取速度。

    2023年 2月 25日
  • Google Research 2022 年度总结:算法进展

    本文是谷歌研究院副总裁兼谷歌院士 Vahab Mirrokni 发表的 2022 年 Google 在隐私、市场算法、可扩展算法、基于图的学​​习和优化方面的算法的最新进展,以下是全文翻译。

    2023年 2月 15日
  • EditText 视图 | Android 无障碍功能开发

    如果你的应用包含允许用户输入文字的可编辑元素,每个可编辑元素都应带有一个用于说明用途的描述性标签。

    2022年 11月 28日
  • 颜色对比度 | Android 无障碍功能开发小技巧

    为应用内的各种元素采用适当的颜色对比度,对于为所有用户提供出色体验至关重要。适当的颜色对比度可以帮助有视力障碍的用户更轻松地使用您的应用。\x0a\x0a即刻了解 Android 无障碍功能 → https://developer.android.google.cn/studio/intro/accessibility\x0a构建无障碍功能更出色的应用 → https://developer.android.google.cn/guide/topics/ui/accessibility

    2022年 11月 29日
  • TL;DR 344 期 | Google 开发者周刊

    大家好!本周的开发者周刊带来了关于 Google Cloud、Google Security、Google Open Source 和 Search Labs 的令人兴奋的更新。 …

    2023年 6月 9日
wechat
关注微信公众号