聚焦 Android 11: Android 11 应用兼容性

做者 / Android 产品经理 Diana Wonghtml

在往期  #11WeeksOfAndroid  系列文章中咱们介绍了 联系人和身份 隐私和安全 ,本期将聚焦  Android 11 兼容性 。咱们将为你们陆续带来 #11WeeksOfAndroid 内容,深刻探讨 Android 的各个关键技术点,您不会错过任何重要内容。android

Android 11 兼容性

本期咱们将重点探讨 Android 11 兼容性这一对全部开发者都很是重要的主题。对于 Android, 应用兼容性 一词指应用能够在特定版本的 Android (一般是最新版本) 上正常运行。segmentfault

您能够前往官方网站详细获取可帮助您进行兼容性测试的资源,以及本期全部关于该领域的实用内容和资源!安全

更轻松实现应用与 Android 11 兼容

在每次版本更新中,咱们都但愿尽可能减小应用适配 Android 所需的工做。在 Android 11 中,咱们添加了新的流程、开发者工具和版本发布里程碑,以帮助咱们最大程度地减小平台更新带来的影响,更轻松实现应用的兼容性。框架

  • 最大限度地下降行为变动影响 : 咱们的目标始终如一,即在您将应用的 targetSdkVersion 设置为 Android 11 以前,尽量将这些变动设置为可选项,最大程度减小平台变动对应用带来的影响。若是您经过 Google Play 分发应用,则将有一年以上的时间逐渐适用这些变动。
  • 更轻松的测试和调试 : 为了帮助您测试兼容性,咱们将许多非兼容性变动设置为 "可关闭"。这意味着,您能够经过开发者选项或 adb 强制启用或禁用每一项更改。这样就无需为了一些基本测试而更改 targetSdkVersion 或从新编译您的应用。咱们也简化了 Android Studio 自动化测试的流程。
  • 对非 SDK 接口的限制 : 为了帮助开发者逐步弃用非 SDK API,咱们不断努力,更新了 受限制的非 SDK 接口列表。一如既往,欢迎您提出反馈,并 发出公共 API 替代品的开发需求
  • 动态资源加载器 : 在开发者们移除非 SDK 接口调用的同时,咱们听到了来自 卓盟科技 等开发者的一个需求: 提供一个公开 API 来在运行时动态加载资源和素材。如今,咱们在 Android 11 中添加了 Resource Loader 框架,感谢向咱们提出这些需求的开发者!

请继续阅读,详细了解咱们如何简化 Android 11 中的应用测试和调试流程。ide

在 Android 11 上测试

测试应用是否兼容 Android 新版本可能面临不少挑战,尤为是应用在受到多个平台变动影响的状况下。此过程当中可能会出现不少问题:工具

  • 如何肯定应用中可能受影响的区域?
  • 是否应该经过更改 targetSDKVersion,来进行测试?如何用最简单的方法实现?
  • 在开始测试后,如何规避可能引发故障的问题?
  • 在针对最新版本的 Android 进行开发和测试时,如何确认您的应用能继续在其余类型不一样且 API 级别较低的设备上无差异体验?

开发者社区为咱们提供了大量相关问题的优质反馈。在 Android 11 中,咱们为平台添加了如下新工具,并在 Android Studio 中添加了新功能,所以您能够更加轻松的进行测试。性能

适于测试平台变动的新工具

和往年的更新同样,Android 11 的一些平台变动可能会影响您的应用。尽管这些变动对于提高平台性能相当重要,但咱们会尽量将这些变动安排在平台的最新 targetSDKVersion 以后,以便减小对您的应用的直接改动。在 Android 11 中,咱们还会将更多此类平台变动添加到新的 兼容性框架中。测试

什么是兼容性框架?

您可使用全新开发者工具,针对包含在兼容性框架内的变动对应用进行测试和调试。网站

例如,咱们已将包含在兼容性框架内的变动设为可切换,您能够经过设备的开发者选项或使用 Android ADB 强制启用或停用单个变动。Android 平台会自动调整内部 API 逻辑,所以您无需更改 targetSDKVersion 或从新编译应用,便可执行基本测试。此外,您能够隔离各项变动,从而节省发现和调试应用中问题所需的时间。

选择要测试的变动

在切换变动的启用/停用状态以前,您应该通读 行为变动列表,肯定哪些变动可能会影响您的应用。包含在兼容性框架内的变动已在变动描述前列出相应的 Change ID 和 Change Name。

通常来讲,咱们建议您从 影响全部应用的行为变动 开始测试,由于不管 targetSDKVersion 如何,这些变动均可能对您的应用形成影响。咱们用下面这个 targetSDKVersion 控制的变动为例,说明您能够如何在不使用其余 targetSDK 重编译应用的状况下,对这些变动进行测试。

后台位置访问变动 中,请求始终在后台访问位置的应用会受影响。若是您的应用受到这一变动的影响,那么从该变动开始测试是不错的选择。此变动的名称为 BACKGROUND_RATIONALE_CHANGE_ID,变动 ID 为 147316723。您须要先使用这些信息启用此变动,而后再测试应用所以受到的影响。

单独测试变动

肯定要测试的变动后,您可使用开发者选项切换此变动的启用/停用状态。如要使用开发者选项,请打开设备上的 "设置" 应用,导航至 系统 > 高级 > 开发者选项 > 应用兼容性变动

开发者选项中可切换的平台变动,后台位置访问变动已启用

在本例中,BACKGROUND_RATIONALE_CHANGE_ID 是惟一已启用的变动,旨在最大程度缩小应用可能遇到的各类问题的缘由范围。

您也可使用 Logcat 或 ADB 识别已启用的变动,或 使用 ADB 切换变动的启用/停用状态。请注意,您只能在使用可调试应用时切换变动。

测试和调试应用

启用变动后,您可使用经常使用的测试工做流来测试和调试应用。如遇到问题,请查看日志,肯定问题的缘由。若是不肯定问题是否由已启用的平台变动引发,您能够尝试停用此变动,而后从新测试应用的同一模块。

更多资讯

如需了解其余相关示例,您能够观看有关 测试 Android 11 中平台变动的视频,或阅读 官方文档

Android Studio 中用于测试应用兼容性的新工具

除了在新平台上手动进行测试外,咱们还简化了使用 Android Studio 在最新 Android 系统上运行自动化测试的流程。

从 Android Studio 4.2 开始,咱们实现了在多个实体或虚拟设备上并行运行插桩测试 (instrumentation tests)。如今,您能够在运行测试的过程当中,从目标设备下拉菜单中选择 多个设备

此功能旨在帮助您在开发周期中尽早发现问题,并让您可以比较不一样 Android 设备之间的差别。您可使用 视图 > 工具窗口 > 运行 下的新 测试矩阵 ,研究这些测试的结果。

新测试矩阵可按状态、设备和 API 级别过滤测试结果

新测试矩阵可按状态、设备和 API 级别过滤测试结果。

更多资讯

请观看有关 使用 Android Studio 测试应用兼容性的视频,或阅读 官方文档

更多精彩

咱们建议您尝试这些新工具,并 向咱们发送反馈,告诉咱们这些工具对您是否有用。咱们但愿这些工具能帮助您更轻松地测试 Android 11 应用兼容状况。

相关文章
相关标签/搜索