将应用迁移到 Android 12

本文对典型的开发和测试阶段进行了简要介绍,以帮助您制定与平台发布时间表保持一致的准备计划,并确保您的用户在 Android 12 上获得良好的体验。

每次发布新的 Android 版本时,我们都会推出一些全新的功能并引入一些行为变更,目的就在于提高 Android 的实用性、安全性和性能。在许多情况下,您的应用都可以直接使用并完全按预期运行;而在其他的一些情况下,您可能需要对应用进行更新以适应这些平台变更。

源代码发布到 AOSP(Android 开源平台)后,用户随之就可能开始使用新平台。因此,应用必须做好准备,让用户能够正常使用,最好还能利用新的功能和 API 发挥新平台的最大优势。

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

  • 确保应用兼容性(在 Android 12 最终发布前)
  • 针对新平台的功能和 API 调整应用(最终发布后尽快进行)

确保与 Android 12 兼容

您必须测试现有应用在 Android 12 上的运行情况,以确保更新到最新版 Android 的用户获得良好的体验。有些平台变更可能会影响应用的行为方式,因此,必须尽早进行全面测试并对应用进行任何必要的调整。

您通常可以调整应用并发布更新,而无需更改应用的 targetSdkVersion。同样,您应该也不需要使用新的 API 或更改应用的 compileSdkVersion,但是这一点可能要取决于应用的构建方式及其所使用的平台功能。

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

获取 Android 12

将 Android 12 系统映像刷写到设备上,或下载适用于 Android 模拟器的系统映像。

查看变更

查看系统行为变更,以确定变更可能会在哪些方面影响您的应用。

测试

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

更新

只进行必要的代码更改,以适应行为变更或解决问题。使用应用最初面向的目标 API 级别重新编译,无需以 Android 12 为目标平台。

发布

注册、上传并发布更新的 Android App Bundle 或 APK。

执行兼容性测试

在大多数情况下,测试与 Android 12 的兼容性与普通的应用测试类似。这时有必要查阅核心应用质量指南测试最佳做法

如要进行测试,请在搭载 Android 12 的设备上安装您当前发布的应用,并完成所有流程和功能,同时查找问题。为帮助您确定测试重点,请查看 Android 12 中引入的行为变更,这些变更会影响应用的功能或导致应用崩溃。

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

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

当您完成测试并进行更新后,我们建议您立即发布兼容的应用。这样可以尽早让您的用户测试应用,并帮助用户顺利过渡到 Android 12。

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

发布应用的兼容版本后,下一步是通过更新 targetSdkVersion 并利用 Android 12 的新 API 和功能来添加对 Android 12 的全面支持。准备就绪后,您即可开始进行这些更新,请注意以新平台为目标平台的 Google Play 要求

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

以下是全面支持 Android 12 的步骤。

获取 Android 12 SDK

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

查看行为变更

查看适用于以 Android 12 为目标平台的应用的行为变更。确定变更可能会在哪些方面影响您的应用,并规划如何提供支持。

检查是否有新的隐私权变更

进行所需的代码和架构更改,以支持 Android 12 的用户隐私权变更。

采用 Android 12 功能

利用 Android 12 API,为您的应用引入新功能。针对 Android 12 重新编译。

测试

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

最终更新

在最终的 Android 12 API 发布后,再次更新 targetSdkVersion 和其他构建配置,进行其他更新,并测试您的应用。

发布

注册、上传并发布更新的 Android App Bundle 或 APK。

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

如需开始针对 Android 12 全面支持进行测试,请使用最新预览版的 Android Studio 下载 Android 12 SDK,以及所需的任何其他工具。接下来,更新应用的 targetSdkVersioncompileSdkVersion,然后重新编译应用。如需了解详情,请参阅 SDK 设置指南

测试 Android 12 应用

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

与基本兼容性测试一样,完成所有流程和功能以查找问题。将测试重点放在以 Android 12 为目标平台的应用的行为变更上。您还可以根据核心应用质量指南测试最佳做法检查您的应用。

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

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

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

Android 12 为开发者引入了一项新功能,可让您更轻松地测试应用的针对性行为变更。对于可调试的应用,切换开关可让您:

  • 在不实际更改应用的 targetSdkVersion 的情况下测试有针对性的更改。您可以使用切换开关强制启用特定的针对性行为变更,以评估对现有应用的影响。
  • 仅针对特定变更进行测试。您可以使用切换开关停用除要测试的变更之外的所有针对性变更,而不必一次处理所有针对性变更。
  • 通过 adb 管理切换开关。您可以使用 adb 命令在自动测试环境中启用和停用可切换的变更。
  • 使用标准变更 ID 更快地进行调试。每个可切换的变更都具有唯一 ID 和名称,可用于在日志输出中快速调试根本原因。

在您准备更改应用的目标平台时,或者在您积极开发以便支持 Android 12 时,切换开关将十分有用。如需了解详情,请参阅兼容性框架变更 (Android 12)