将应用迁移到 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 App Bundle 或 APK。

执行兼容性测试

在大多数情况下,与 Android 13 的兼容性测试类似于普通的应用测试。这是一个审查核心应用质量指南测试最佳实践的好时机。

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

此外,务必检查并测试对受限制的非 SDK 接口的使用。您应该用公共 SDK 或 NDK 等效项替换您的应用使用的任何受限制接口。注意日志中突出显示这些访问的警告,并使用 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 App Bundle 或 APK。

获取 SDK,更改目标,使用新 API 构建

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

测试您的 Android 13 应用

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

与基本兼容性测试一样,检查所有流程和功能以寻找问题。将测试重点放在针对 Android 13 应用的行为变更。这也是根据核心应用质量指南测试最佳实践检查您的应用的好时机。

务必检查并测试对可能适用的受限制的非 SDK 接口的使用。注意日志中突出显示这些访问的警告,并使用 StrictMode 方法 detectNonSdkApiUsage() 以编程方式捕获它们。

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

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

Android 13 包含兼容性切换开关,可让您更轻松地测试具有目标行为变更的应用。对于可调试应用,这些切换开关允许您

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

在您准备更改应用目标,或在积极开发 Android 13 支持期间,这些切换开关会有所帮助。有关详细信息,请参阅兼容性框架变更 (Android 13)