每次发布新的 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 中。接下来,将应用的 targetSdkVersion
和 compileSdkVersion
更改为 "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 时,切换开关将十分有用。如需了解详情,请参阅相应的文档。