将应用迁移到 Android 13

本文档提供了典型开发和测试阶段的高级视图,可帮助您制定与平台发布时间表完美契合的准备计划,并确保您的用户在 Android 13 上获得出色的体验。

随着每个 Android 版本的发布,我们都会引入新功能以及旨在使 Android 更加有用、安全和高效的行为更改。在许多情况下,您的应用将按预期工作,而在其他情况下,您可能需要更新您的应用以适应平台更改。

用户一旦源代码发布到 AOSP(Android 开源项目),就可以开始接收新平台,因此,您的应用必须做好准备,为用户提供预期的性能,并且理想情况下利用新功能和 API 来充分利用新平台。

典型的迁移有两个阶段,这两个阶段可以同时进行

  • 确保应用兼容性(在 Android 13 正式发布之前)
  • 针对新平台的功能和 API(在正式发布后尽快)

确保与 Android 13 兼容

务必针对 Android 13 测试现有应用的功能,以确保更新到最新 Android 版本的用户获得良好的体验。某些平台更改可能会影响应用的行为方式,因此,务必尽早并彻底地进行测试,并对应用进行必要的调整。

通常,您可以在无需更改应用的 targetSdkVersion 的情况下调整应用并发布更新。同样,您也不需要使用新的 API 或更改应用的 compileSdkVersion,尽管这可能取决于应用的构建方式及其使用的平台功能。

在开始测试之前,请务必熟悉 所有应用的行为更改。即使您不更改其 targetSdkVersion,这些更改也可能会影响您的应用。

获取 Android 13

将 Android 13 系统映像刷入您的设备,或为 Android 模拟器下载系统映像。

查看更改

查看系统行为更改,以确定应用可能受到影响的区域。

测试

在您的设备或模拟器上安装应用,并运行测试。重点关注系统行为更改,并遍历所有应用流程。

更新

仅进行适应行为更改或解决问题所需的代码更改。使用应用最初针对的相同 API 级别重新编译 - 无需以 Android 13 为目标。

发布

签名、上传和发布更新的 Android 应用包或 APK。

执行兼容性测试

在大多数情况下,与 Android 13 的兼容性测试类似于普通的应用测试。现在是时候回顾 核心应用质量准则测试最佳实践 了。

要进行测试,请将您当前发布的应用安装到运行 Android 13 的设备上,并遍历所有流程和功能,同时查找问题。为了帮助您集中测试,**请查看 Android 13 中引入的所有应用的行为变更**,这些变更可能会影响应用的功能或导致应用崩溃。

此外,请确保**查看并测试受限非 SDK 接口的使用情况**。您应该将应用使用的任何受限接口替换为公共 SDK 或 NDK 等效项。注意突出显示这些访问的 logcat 警告,并使用 StrictMode 方法 detectNonSdkApiUsage() 以编程方式捕获它们。

最后,请确保完全**测试应用中的库和 SDK**,以确保它们在 Android 13 上按预期工作,并遵循隐私、性能、用户体验、数据处理和权限的最佳实践。如果发现问题,请尝试更新到 SDK 的最新版本,或联系 SDK 开发人员寻求帮助。

完成测试并进行任何更新后,我们建议立即发布兼容的应用。这可以让您的用户尽早测试应用,并有助于确保用户更新到 Android 13 时顺利过渡。

更新应用的目标版本和使用新 API 构建

发布兼容版本的应用后,下一步是通过更新其 targetSdkVersion 并利用 Android 13 中的新 API 和功能来为 Android 13 提供全面支持。您可以随时进行这些更新,请记住Google Play 的针对新平台的目标版本要求

在计划全面支持 Android 13 的工作时,请查看影响以 Android 13 为目标版本应用的行为变更。这些针对性的行为变更可能会导致您需要解决的功能问题。在某些情况下,这些变更需要进行大量开发,因此我们建议您尽早了解并解决这些问题。为了帮助识别影响应用的特定行为变更,请使用兼容性切换来测试启用了所选变更的应用。

以下步骤描述了如何全面支持 Android 13。

获取 Android 13 SDK

安装最新版本的 Android Studio 预览版以使用 Android 13 进行构建。确保您拥有 Android 13 设备或模拟器。
更新您的 targetSdkVersion 和其他构建配置。

查看行为变更

查看适用于以 Android 13 为目标版本应用的行为变更。确定应用可能受到影响的区域,并计划如何支持它们。

检查新的隐私变更

进行支持 Android 13 用户隐私变更所需的代码和架构变更。

采用 Android 13 功能

利用 Android 13 API 为您的应用带来新功能和新特性。重新编译以供 Android 13 使用。

测试

在 Android 13 设备或模拟器上进行测试。重点关注行为变更可能影响应用的区域。尝试使用新 API 的功能。提供平台和 API 反馈。报告任何平台、API 或第三方 SDK 问题。

最终更新

Android 13 API 成为最终版本后,再次更新您的 targetSdkVersion 和其他构建配置,进行任何其他更新,并测试您的应用。

发布

签名、上传和发布更新的 Android 应用包或 APK。

获取 SDK、更改目标版本、使用新 API 构建

要开始测试以获取 Android 13 的全面支持,请使用最新预览版的 Android Studio 下载 Android 13 SDK 和任何其他所需的工具。接下来,更新应用的 targetSdkVersioncompileSdkVersion,并重新编译应用。有关详细信息,请参阅SDK 设置指南

测试您的 Android 13 应用

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

与基本兼容性测试一样,遍历所有流程和功能以查找问题。将测试重点放在**以 Android 13 为目标版本应用的行为变更**上。现在也是检查应用是否符合核心应用质量指南测试最佳实践的好时机。

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

最后,请确保完全**测试应用中的库和 SDK**,以确保它们在 Android 13 上按预期工作,并遵循隐私、性能、用户体验、数据处理和权限的最佳实践。如果发现问题,请尝试更新到 SDK 的最新版本,或联系 SDK 开发人员寻求帮助。

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

Android 13 包含兼容性切换,使您可以更轻松地使用目标行为变更测试应用。对于可调试应用,切换允许您

  • **在不实际更改应用的 targetSdkVersion 的情况下测试目标变更**。您可以使用切换强制启用特定的目标行为变更,以评估其对现有应用的影响。
  • **仅将测试重点放在特定的变更上**。切换允许您禁用所有目标变更(除了您要针对其进行测试的变更),而无需一次解决所有目标变更。
  • **通过 adb 管理切换**。您可以使用 adb 命令在自动化测试环境中启用和禁用可切换的变更。
  • **使用标准变更 ID 更快地进行调试**。可切换的变更都具有唯一的 ID 和名称,您可以使用它们在日志输出中快速调试根本原因。

在准备更改应用的目标版本时,或在积极开发 Android 13 支持时,切换可以提供帮助。有关更多信息,请参阅兼容性框架变更 (Android 13)