将应用迁移到 Android 11

随着 Android 的每个版本发布,我们都会引入新功能和行为变更,旨在让 Android 更加实用、安全和高性能。在许多情况下,您的应用开箱即用,而在其他情况下,您可能需要对应用进行更改以适应平台变更。

由于用户可以在源代码发布到 AOSP(Android 开放源代码项目)后立即开始接收新平台,因此应用做好准备至关重要,以确保为用户提供预期的性能,并理想地利用新功能和 API,从而充分发挥新平台的优势。

本文档提供了典型开发和测试阶段的宏观概述,可帮助您制定与平台发布时间表良好协调的准备计划,并确保您的用户在 Android 11 上获得出色的体验。

典型的迁移分为两个阶段,可以并行进行

  • 确保应用兼容性(在 Android 11 最终版本发布之前)
  • 以新平台功能和 API 为目标(在最终版本发布后尽快)

本页面概述了每个阶段的一般步骤。准备好开始时,请阅读获取 Android 11

确保与 Android 11 的兼容性

务必针对 Android 11 测试您现有应用的功能,以确保为更新到最新版 Android 的用户提供出色的体验。一些平台变更可能会影响您的应用行为,因此务必尽早进行彻底测试,然后对应用进行任何必要的调整。

通常,您可以调整应用并发布更新,而无需更改应用的 targetSdkVersion。同样,您应该不需要使用新的 API 或更改应用的 compileSdkVersion,但这取决于您的应用构建方式及其使用的平台功能。以下各部分概述了具体步骤。

开始之前,请务必熟悉可能会影响您的应用的行为变更,即使您不更改其 targetSdkVersion

执行兼容性测试

在大多数情况下,针对 Android 11 进行兼容性测试与您在准备发布应用时进行的其他测试类型相似。现在是回顾核心应用质量准则测试最佳实践的好时机。

只需在运行 Android 11 的设备上安装您当前发布的应用程序,并检查所有流程和功能是否存在问题。为帮助您重点测试,查看 Android 11 中引入的行为变更,这些变更可能会影响您的应用功能或导致应用崩溃。特别是,请务必查看主要隐私变更,并测试您为适应这些变更而实施的任何修复。

此外,请务必审查并测试受限制的非 SDK 接口的使用情况,并改用公共 SDK 或 NDK 等效项。留意 logcat 警告,这些警告会突出显示这些访问,并使用 StrictMode 方法 detectNonSdkApiUsage() 以编程方式捕获它们。

最后,务必全面测试应用中的库和 SDK,确保它们在 Android 11 上按预期运行,并遵循隐私、性能、用户体验、数据处理和权限方面的最佳实践。如果您发现问题,请尝试更新到最新版本的 SDK,或联系 SDK 开发者寻求帮助。

完成测试并进行任何更新后,我们建议您立即发布兼容的应用。这可以让您的用户及早测试应用,并帮助您在用户更新到 Android 11 时实现平稳过渡。

更新应用目标平台并使用新的 API 进行构建

按照前面所述发布了应用的兼容版本后,下一步是通过更新其 targetSdkVersion 并利用 Android 11 的新 API 和功能来添加对 Android 11 的全面支持。您可以在准备就绪后立即执行这些操作,同时注意 Google Play 对新平台的目标平台要求

在您计划全面支持 Android 11 的工作时,一个好的起点是查看适用于以 Android 11 为目标平台的应用的行为变更。这些定向行为变更可能会导致您需要解决的功能问题。在某些情况下,它们可能需要大量的开发工作,因此最好尽早了解它们。为了帮助您评估影响,您还可以使用兼容性切换开关来测试您当前的应用,并启用选定的变更。

以下步骤介绍了如何全面支持 Android 11。

获取 SDK,更改目标平台,使用新 API 进行构建

要开始全面支持 Android 11,首先将 Android 11 SDK(以及所需的任何其他工具)下载到 Android Studio 中。接下来,将应用的 targetSdkVersioncompileSdkVersion 更改为 "30",然后重新编译应用。有关详细信息,请参阅设置指南

测试您的 Android 11 应用

在您编译并安装到运行 Android 11 的设备上后,开始测试以确保应用在以 Android 11 为目标平台时能正常运行。某些行为变更仅适用于您的应用以新平台为目标时,因此您需要在开始之前查看这些变更

与基本兼容性测试一样,检查所有流程和功能是否存在问题。将测试重点放在以 Android 11 为目标平台的应用的行为变更上。特别是,请务必查看隐私变更,并测试您为适应这些变更而实施的任何修复。同时也是根据核心应用质量准则测试最佳实践来检查您的应用的好时机。

务必审查并测试可能适用的受限制的非 SDK 接口的使用情况。留意 logcat 警告,这些警告会突出显示这些访问,并使用 StrictMode 方法 detectNonSdkApiUsage() 以编程方式捕获它们。

最后,务必全面测试应用中的库和 SDK,确保它们在 Android 11 上按预期运行,并遵循隐私、性能、用户体验、数据处理和权限方面的最佳实践。如果您发现问题,请尝试更新到最新版本的 SDK,或联系 SDK 开发者寻求帮助。

使用应用兼容性切换开关进行测试

Android 11 引入了一项新功能,可让开发者更轻松地使用定向行为变更来测试您的应用。对于可调试的应用,切换开关可让您

  • 测试定向变更,而无需实际更改应用的 targetSdkVersion。您可以使用切换开关强制启用特定的定向行为变更,以评估对现有应用的影响。
  • 仅将测试重点放在特定变更上。无需一次性解决所有定向变更,切换开关可让您禁用除您想要测试的变更之外的所有定向变更。
  • 通过 adb 管理切换开关。您可以使用 adb 命令在自动化测试环境中启用和禁用可切换的变更。
  • 使用标准变更 ID 更快地调试。每个可切换的变更都具有唯一的 ID 和名称,您可以使用它们在日志输出中快速调试根本原因。

在您准备更改应用的目标平台或积极开发 Android 11 支持时,切换开关会很有帮助。有关详细信息,请参阅相关文档