将应用迁移到 Android 16

本文档概述了典型的开发和测试阶段,可帮助您制定与平台发布时间表充分契合的准备计划,并确保您的用户在 Android 16 上获得卓越体验。

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

用户在 AOSP(Android 开源项目)发布源代码后即可开始接收新平台,因此应用准备就绪、按预期向用户提供服务,并最好能利用新功能和 API 充分发挥新平台的优势,这一点至关重要。

典型的迁移过程分为两个阶段,这两个阶段可以同时进行

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

确保与 Android 16 的兼容性

请务必针对 Android 16 测试现有应用的功能,以确保更新到最新 Android 版本的用户获得卓越体验。某些平台变更可能会影响应用的行为方式,因此务必尽早进行全面测试,并对应用进行必要的调整。

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

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

获取 Android 16

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

查看变更

查看系统行为变更,确定您的应用可能受影响的领域。

测试

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

更新

仅进行必要的代码修改,以适应行为变更或解决问题。使用应用最初以其为目标的同一 API 级别重新编译 - 无需以 Android 16 为目标平台。

发布

签署、上传并发布您已更新的 Android App Bundle 或 APK。

执行兼容性测试

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

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

另请务必查看和测试是否使用了受限制的非 SDK 接口。您应将应用使用的所有受限制接口替换为公共 SDK 或 NDK 的等效项。留意 logcat 警告,这些警告会突出显示此类访问,并使用 StrictMode 方法 detectNonSdkApiUsage() 以编程方式捕获这些警告。

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

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

更新应用的目标定位并使用新的 API 进行构建

发布兼容版本的应用后,下一步是通过更新应用的 targetSdkVersion 并利用 Android 16 中的新 API 和功能,添加对 Android 16 的全面支持。您可以尽快进行这些更新,但要记住关于以新平台为目标的 Google Play 要求

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

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

获取 Android 16 SDK

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

查看行为变更

查看适用于以 Android 16 为目标平台的应用的行为变更。确定您的应用可能受影响的领域,并规划如何支持它们。

对照新的隐私变更进行检查

进行必要的代码和架构修改,以支持 Android 16 的用户隐私变更。

采用 Android 16 功能

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

测试

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

最终更新

Android 16 API 最终确定后,再次更新您的 targetSdkVersion 和其他构建配置,进行任何额外的更新,并测试您的应用。

发布

签署、上传并发布您已更新的 Android App Bundle 或 APK。

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

要开始测试对 Android 16 的全面支持,请使用最新预览版 Android Studio 下载 Android 16 SDK 以及您需要的其他工具。然后,更新应用的 targetSdkVersioncompileSdkVersion,并重新编译应用。有关详情,请参阅SDK 设置指南

测试您的 Android 16 应用

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

与基本的兼容性测试一样,测试所有流程和功能,查找问题。将测试重点放在影响以 Android 16 为目标平台的应用的行为变更上。此时也是根据核心应用质量指南测试最佳实践检查应用的好时机。

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

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

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

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

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

在您准备更改应用的目标定位时,或在积极开发以支持 Android 16 时,这些切换开关会很有帮助。如需了解详情,请参阅兼容性框架变更 (Android 16)