符合 Google Play 的目标 API 级别要求

您上传的 APK 必须符合 Google Play 的目标 API 级别要求

自 2023 年 8 月 31 日起:

  • 新应用必须以 Android 13(API 级别 33)或更高版本为目标平台;Wear OS 应用除外,此类应用必须以 Android 11(API 级别 30)和 Android 13(API 级别 33)之间的版本(包括这两个版本)为目标平台。

  • 应用更新必须以 Android 13 或更高版本为目标平台,并针对 Android 13 中的行为变更进行调整;但 Wear OS 应用除外,此类应用必须以 Android 11 为目标平台。

永久的专用应用 - 此类应用仅限特定组织中的用户使用,且仅供内部分发,不要求满足目标 API 级别要求。

为何要以较新的 SDK 为目标平台?

每个新的 Android 版本都会引入一些变更,以便改进安全性和性能,并提升 Android 用户体验。部分变更仅适用于通过 targetSdkVersion 清单属性(也称为目标 API 级别)明确声明支持这些变更的应用。

将应用的目标 API 级别配置为新近的 API 级别可确保用户享受到这些改进带来的好处,同时您的应用仍可在较低版本的 Android 上运行。通过以新近的 API 级别为目标平台,您还可以让应用利用平台的最新功能,为用户提供愉悦的体验。此外,从 Android 10(API 级别 29)开始,如果应用以 Android 5.1(API 级别 22)或更低版本为目标平台,用户首次启动该应用时会看到警告

本文重点介绍了有关更新目标 API 级别的重要须知,以便您满足 Google Play 的要求。根据要迁移到的版本,请参阅以下部分中的说明。

从 Android 12(API 级别 31)迁移到 Android 13(API 级别 33)

如需将应用更新为以 Android 13 为目标平台,请按照行为变更列表操作。

从 Android 11(API 级别 30)迁移到 Android 12(API 级别 31)

安全与权限

用户体验

  • 自定义通知:包含自定义内容视图的通知将不再使用完整的通知区域;相反,系统会应用标准模板。此模板可确保自定义通知在所有状态下都与其他通知的装饰相同。此行为与 Notification.DecoratedCustomViewStyle 的行为几乎完全相同。
  • Android App Links 验证的变更:使用 Android App Links 验证时,请确保您的 intent 过滤器包含 BROWSABLE 类别并支持 HTTPS 架构。

性能

  • 前台服务启动限制:以 Android 12 或更高版本为目标平台的应用在后台运行时,将无法启动前台服务,但少数特殊情况除外。如果应用在后台运行时尝试启动前台服务,则会引发异常(少数特殊情况除外)。

    请考虑使用 WorkManager 来在应用在后台运行时安排和启动加急工作。如需完成用户请求的具有时效性的操作,请在精确的闹钟内启动前台服务。

  • 通知 trampoline 限制:当用户点按通知时,某些应用会启动一个应用组件来做出响应,该组件会启动用户看到并与之互动的 activity。此应用组件称为通知 trampoline。

    应用不得从用作通知 trampoline 的服务或广播接收器启动 activity。当用户点按通知或通知中的操作按钮后,您的应用无法在服务或广播接收器内调用 startActivity()

查看会影响以 Android 12(API 级别 31)为目标平台的应用的完整变更列表

从低于 Android 11(API 级别 30)的版本迁移

请选择您要迁出数据的 Android 版本:

迁移到 Android 5(API 级别 21)

请查看下列每个版本对应的“行为变更”页面,以确保您的应用已将这些版本中引入的变更纳入考量:

如要继续,请按照下一部分中的说明操作。

迁移到 Android 6(API 级别 23)

以下注意事项适用于以 Android 6.0 及更高版本为目标平台的应用:

  • 运行时权限

    • 危险权限只能在运行时授予。您的界面操作流程必须提供授予这些权限的直观功能。

    • 确保您的应用尽可能做好准备,以应对权限请求被拒的情况。例如,如果用户拒绝应用发出的访问设备 GPS 的请求,您的应用应该能够以其他方式继续运行。

如需查看 Android 6.0(API 级别 23)中引入的变更的详尽列表,请参阅相应平台版本的行为变更页面。

如要继续,请按照下一部分中的说明操作。

迁移到 Android 7(API 级别 24)

以下注意事项适用于以 Android 7.0 及更高版本为目标平台的应用:

  • 低电耗模式和应用待机模式

    请按照针对低电耗模式和应用待机模式进行优化一文中的说明来设计您的应用行为;这篇文章同时也说明了在多个平台版本中引入的增量变更。

    当设备处于低电耗模式和应用待机模式时,系统的行为如下:

    • 限制网络访问权限
    • 延迟提醒、同步和作业
    • 限制 GPS 和 WLAN 扫描
    • 限制一般优先级的 Firebase Cloud Messaging 消息
  • 权限更改

    • 系统会限制访问应用的私有目录。
    • 在您的应用之外显示 file:// URI 会触发 FileUriExposedException。如果您需要将文件共享到自己的应用之外,请实现 FileProvider
  • 系统禁止链接到非 NDK 库。

如需查看 Android 7.0(API 级别 24)中引入的变更的详尽列表,请参阅相应平台版本的行为变更页面。

如要继续,请按照下一部分中的说明操作。

迁移到 Android 8(API 级别 26)

以下注意事项适用于以 Android 8.0 及更高版本为目标平台的应用:

如需查看 Android 8.0(API 级别 26)所推出的变更的详尽列表,请参阅相应平台版本的行为变更页面。

从 Android 8 (API 26) 迁移到 Android 9 (API 28)

如需查看 Android 9.0(API 级别 28)所推出的变更的详尽列表,请参阅行为变更

从 Android 9(API 级别 28)迁移到 Android 10(API 级别 29)

从 Android 10(API 级别 29)迁移到 Android 11(API 级别 30)

如需查看 Android 11(API 级别 30)所推出变更的详尽列表,请参阅行为变更页面。

按照上一部分中的说明继续更新到 API 31。

对应用进行现代化改造

更新应用的目标 API 级别时,不妨考虑采用最新的平台功能翻新应用,为用户提供愉悦的体验。

检查及更新您的 SDK 和库

确保您的第三方 SDK 依赖项支持 API 31:某些 SDK 提供方会在清单中发布这项内容;而另一些 SDK 提供方则需要进一步调查。如果您使用的 SDK 不支持 API 31,请与 SDK 提供方合作,优先解决该问题。

另请注意,您的应用或游戏的 targetSdkVersion 可能会限制访问私有 Android 平台库;如需了解详情,请参阅 NDK 应用链接至平台库

您还应验证您所使用的 Android 支持库版本中是否存在任何限制。与往常一样,您必须确保 Android 支持库的主要版本与应用的 compileSdkVersion 兼容。

我们建议您选择不高于支持库主要版本的 targetSdkVersion。您最好更新至最新的兼容支持库,以便利用最新的兼容性功能和问题修复程序。

测试应用

适当更新应用的 API 级别和功能后,您应测试一些核心用例。以下建议并非详尽无遗,但旨在指导您进行测试。我们建议您针对以下方面进行测试:

  • 您的应用已编译为 API 29,且没有出现错误或警告。
  • 您的应用对用户拒绝权限请求的情况已有应对策略,并提示用户授予权限。为此,请执行以下操作:

    • 转到应用的“应用信息”屏幕,然后停用所有权限。
    • 打开应用,确保没有发生崩溃问题。
      • 执行核心用例测试,并确保系统会再次提示所需的权限。
  • 低电耗模式可呈现预期效果,且不会出现错误。

    • 使用 adb,让测试设备在您的应用正在运行时进入低电耗模式。
      • 测试所有会触发 Firebase 云消息传递消息的用例。
      • 测试所有使用闹钟或作业的用例。
      • 消除后台服务的所有依赖项。
    • 将应用设置为应用待机模式
      • 测试所有会触发 Firebase 云消息传递消息的用例。
      • 测试所有使用闹钟的用例。
  • 处理拍摄的新照片 / 视频

  • 处理将文件共享给其他应用的操作 - 测试与任何其他应用(甚至是同一开发者推出的其他应用)共享文件数据的任何用例

    • 测试内容是否在其他应用中可见并且不会触发崩溃。

更多信息

在 Google Play 管理中心内选择接收电子邮件,以便接收我们向您发送的 Android 和 Google Play 重要更新及公告,包括每月的合作伙伴简报。