适用对象:计划将应用升级 / 适配到 Android 17(API 37)的 Android 开发团队
文档目标:明确 所有应用 与 以 Android 17 为目标平台(targetSdk = 37)的应用 各自需要完成的适配项。每个适配点按「背景 / 适用范围 / 变更内容 / 适配步骤」展开,说明为什么要改以及具体怎么改。
0. 文档导读
Android 17 的适配变更可分为两类,团队需按自身升级目标分别处理:
| 分类 | 触发条件 | 关键动作 |
|---|---|---|
| 全局行为变更 | 在 Android 17 设备上运行(不论 targetSdk 是多少) | 明文流量弃用预告、隐式 URI 授权限制、Keystore 上限、后台音频强化、Parcel 校验、配置变更不重启等 |
| 目标平台行为变更 | targetSdk 升级到 37(Android 17) 时生效 | MessageQueue 无锁实现、static final 不可改、本地网络权限、BAL 强化、CT 透明度、可写原生库限制等 |
建议升级路径:先确保应用能在 Android 17 设备上正常安装运行(全局变更),再将 compileSdkVersion / targetSdkVersion 提升到 37 并验证目标平台变更。可利用系统提供的兼容性切换开关(通过 adb 管理)分阶段验证。
more >>注:部分全局变更当前由 Aconfig Flag 控制、或属于「弃用预告 / 限制预告」,在 Android 17 中可能尚未完全强制生效,但建议现在即着手迁移,避免 Android 18 正式生效时被动改动。