Appearance
行为变更(全部应用):不升 targetSdk 也会中招的 Android 16 变更
本页导读:本页覆盖官方「行为变更:所有应用」清单——只要设备跑 Android 16,无论应用 targetSdk 是多少都会生效的变更。每项按「变更内容 → 影响面 → 检测与适配方法」三段展开,命令与兼容性开关全部取自官方页原文。想先建立整体地图,读 00 总览。
版本注记:事实源为官方行为变更:所有应用(Android 16 / API 36),核对时间 2026-10。与之配套的「仅 targetSdk 36」变更在 02 页。
一、先说结论:这页为什么容易翻车
- 这类变更不随 targetSdk 灰度:老应用、长期不更新的存量应用,在用户升级到 Android 16 后直接暴露在新行为下。
- 官方给出的开关(App Compatibility Framework)可以在测试机上逐项「提前开/提前关」,但正式版一定生效;测试方法都给了
adb shell am compat ...命令,本页逐项列出。 - 完整开关名录见官方兼容性变更框架参考,年度回归建议把本页第二节到第十二节的开关全部跑一遍。
二、JobScheduler 配额优化(后台任务第一大项)
版本注记:Android 16 / API 36,影响所有应用;官方章节「JobScheduler 配额优化」。
变更内容
- 常规与加急作业的执行运行时配额,按三个新因素收紧:应用所处待机分档(active 档开始受宽松运行时配额约束);作业是否在应用前台态启动(应用转后台后仍继续跑的作业开始吃配额);作业是否与前后台服务(FGS)并行执行(并行作业同样吃配额)。
- 官方同时给了替代方案:用户发起的数据传输请改用 UIDT(用户发起数据传输)作业(Android 16 新通道)。
- 资源限制原理见官方电源管理资源限制与任务调度省电最佳实践。
影响面:经 WorkManager、JobScheduler、DownloadManager 调度的全部任务;同步/上传类功能「偶发不执行」的投诉源头很可能就在这里。
检测与适配
- 记停止原因:
WorkInfo.getStopReason()(参考)/JobParameters.getStopReason()(参考)。 - 用新 API
JobScheduler#getPendingJobReasons(int)/getPendingJobReasonsHistory(int)查作业「为什么还没跑」(Android 16 新增,含系统隐式约束)。 - 测试命令(官方原文):
bash
# 关闭「前台态启动的作业也吃配额」的强制
adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_TOP_STARTED_JOBS <包名>
# 关闭「与 FGS 并行作业吃配额」的强制
adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_FGS_JOBS <包名>
# 手动设定/查看待机分档
adb shell am set-standby-bucket <包名> active|working_set|frequent|rare|restricted
adb shell am get-standby-bucket <包名>2.1 伴生项:abandoned 空作业的新停止原因
- 场景:
JobParameters被 GC 而应用忘了调jobFinished()——作业在应用不知情的情况下反复跑。Android 16 起这类超时归入新停止原因STOP_REASON_TIMEOUT_ABANDONED(不再是普通STOP_REASON_TIMEOUT),高频出现时系统会主动降低该应用作业频率。 - 用 WorkManager / AsyncTask / DownloadManager 的不受影响(生命周期由库托管)。
- 适配:作业开始时保留
JobParameters强引用,finally 路径必调jobFinished();监控新停止原因出现率。
2.2 伴生项:setImportantWhileForeground 彻底失效
JobInfo.Builder#setImportantWhileForeground(boolean)自 Android 12(API 31)弃用,Android 16 起调用被直接忽略;isImportantWhileForeground()恒返回false。仍靠它提权的作业请重新评估用约束与分档。
三、有序广播:优先级不再全局有效
版本注记:Android 16 / API 36,影响所有应用;官方章节「有序广播优先级范围不再是全局」。
变更内容
android:priority/IntentFilter#setPriority()的投递顺序只在同一应用进程内保证,跨进程不再保证。- 优先级值被自动钳制到
(SYSTEM_LOW_PRIORITY + 1, SYSTEM_HIGH_PRIORITY - 1)区间;两个边界值仅系统组件可用。
影响面:多进程应用用广播做进程间时序协调的;依赖「压过别家应用 receiver」的实现(如安全类、输入法联动类 app)。
检测与适配:盘点所有带 priority 的有序广播;跨进程协调改用 ContentProvider 回调、Binder、数据库轮询或定向广播等显式通道;不要再用「比大小」赌投递顺序。
四、ART 内部变更:最容易被忽略的跨版本风险
版本注记:Android 16 / API 36;官方章节「ART 内部变更」。
变更内容
- ART 持续演进(性能 + 新 Java 特性),并通过 Google Play 系统更新下发到 10 亿+ 台 Android 12(API 31)及以上设备(官方博客:ART update)。
- 关键推论:依赖 ART 内部结构(如 非 SDK 接口)的代码,在不升级系统版本的旧机上也可能被一次 ART 组件更新打崩——它不跟平台版本绑定。
影响面与官方点名:16 预览期官方在版本说明「其他已知问题-应用」长期点名两个依赖 ART 内部结构的库:HiddenApiBypass(org.lsposed.hiddenapibypass)与 FlyCore(< v2025.0224.1629)。用到同类 hack 库的应用会看到间歇性崩溃。
检测与适配:全量回归时关注 native/VM 相关崩溃栈;升级上述库到修复版本;需要新能力走公共 API 特性请求,而不是反射内部字段。
五、16 KB 内存页:兼容模式上线
版本注记:Android 16 / API 36;官方章节「16 KB 页面大小兼容模式」。16 KB 支持本身是 Android 15 引入的。
变更内容
- Android 16 新增兼容性模式:为 4 KB 页构建的应用,在 16 KB 页设备上可由系统自动以兼容模式运行,并向用户弹提示框。
- 在
AndroidManifest.xml设置android:pageSizeCompat(需以 Android 16 SDK 编译)可消除弹窗。
影响面:带未对齐原生库(NDK .so)的应用在 16 KB 机型(如 Pixel 9 系起)上的启动与内存表现。
检测与适配:按官方16 KB 指南检查 so 对齐(objdump -p | grep LOAD);对照官方博客《Get your apps ready for 16 KB page size devices》推进对齐;兼容模式只是缓冲垫,不是终点。
六、无障碍:弃用「干扰性播报」
版本注记:Android 16 / API 36;官方章节「弃用干扰性无障碍功能播报」。
变更内容:View.announceForAccessibility() 与 TYPE_ANNOUNCEMENT 事件被弃用(TalkBack 下体验不一致,官方给出替代矩阵)。
替代方案(官方口径)
- 窗口级大变化:
Activity.setTitle()、setAccessibilityPaneTitle();Compose 用paneTitle语义。 - 关键 UI 增量变化:
setAccessibilityLiveRegion()/ ComposeliveRegion(Polite/Assertive),节制使用。 - 错误提示:
CONTENT_CHANGE_TYPE_ERROR事件 +AccessibilityNodeInfo.setError(),或TextView.setError()。
检测:无障碍 Scanner / TalkBack 实听回归;全局搜索 announceForAccessibility 调用点逐个替换。详见官方无障碍指南。
七、三按钮导航支持预测性返回
版本注记:Android 16 / API 36;官方章节「支持三按钮导航」。
变更内容:已正确迁移预测性返回的应用,在三按钮导航下长按返回键也会播放预测动画(回主页、跨任务、跨 activity 全覆盖),提前看到返回去向。
影响面/适配:这是对迁移应用的奖励而非破坏;未迁移应用无变化。若你自定义了返回动画,确认与系统动画不打架即可。
八、主题应用图标自动应用(Android 16 QPR2,次要发布)
版本注记:Android 16 QPR 2 起生效(次要发布,不属于 API 36 首发内容);官方章节「自动带主题的应用图标」。
变更内容:未提供主题图层的应用,系统自动为其应用主题图标,统一桌面观感。
适配:在自适应图标里补 monochrome 图层即可自控;Android Studio 支持主题图标预览。
九、虚拟设备属主(投屏/云手机场景)
版本注记:Android 16 / API 36;官方章节「虚拟设备属主覆盖」。
变更内容:虚拟设备属主(VDO,把应用投到 PC/车机/头显的受信应用)可在受管虚拟设备上按应用覆盖屏幕方向、宽高比、可调整性限制,投影到外接显示。参见官方Companion app streaming。
影响面:为小屏竖屏设计的布局,会被强制拉到大屏(车机、Chromebook、PC),可能出现拉伸/组件溢出。
检测:用 VDO 形态(如厂商的「应用投 PC」功能)或开发者选项里的模拟尺寸跑布局检查;适配方向参考自适应布局指南。
十、Intent 重定向攻击:系统默认防御
版本注记:Android 16 / API 36,影响所有应用;官方章节「增强对 Intent 重定向攻击的防范」。背景阅读:Intent 重定向风险。
变更内容
- Intent 重定向(攻击者控制 extras 里的子 Intent,借受害者应用启动其私有组件/获取 URI 权限)获得系统级默认加固,正常用法不受影响。
影响面:确有「转发外部子 Intent」刚需的应用(跨应用快捷方式代理、部分投屏/输入法组件)可能被拦。
检测与适配
- 以 API 36 编译:命中场景时显式调用
Intent.removeLaunchSecurityProtection()退出防护(谨慎,等于自担风险)。 - 未升 36 编译的过渡方案(官方示例):反射拿
removeLaunchSecurityProtection再invoke,用完即走,别扩大豁免面。
十一、配套设备配对:发现超时不再告诉应用
版本注记:Android 16 / API 36,影响所有配套设备管理(CDM)应用;官方章节「不再向配套应用通知发现超时」。
变更内容:配对防滥用(防借扫描摸位置隐私)改造——
- 应用不再收到
RESULT_DISCOVERY_TIMEOUT;超时改由系统对话框告知用户,用户关掉对话框时应用收到RESULT_USER_REJECTED。 - 搜索时长 20s → 30s,用户可随时中止;前 20s 内发现 ≥1 台设备则停止继续搜索。
适配:处理配对失败分支时把「超时」并入「用户拒绝」语义;引导文案改走通用失败路径。参考配套设备配对文档。
十二、蓝牙:绑定丢失处理改进
版本注记:Android 16 / API 36,影响所有应用;官方章节「改进绑定丢失处理」。target36 还能用两个新 intent,见 02 页 §七。
变更内容:远端设备配对丢失(bond loss)时,系统不再「静默解除配对并重新开始配对流程」,改为:断开 ACL、保留本地配对信息、弹系统对话框提示用户重新配对,统一各应用不一致的兜底行为。
影响面:穿戴/车钥匙/健康手环类应用原来靠「自动重新配对」掩盖的体验问题会显性化。
检测与适配:测试机上手动制造 bond loss(一端忘记配对再回连),确认应用不重复发起配对、不静默吞失败;按对话框交互引导用户完成重配对。
十三、澄清区:坊间流传但不在这页的条目
以下是常见问答里常被塞进「Android 16 全应用变更」但官方页并无对应内容的条目,给出正确归属,避免以讹传讹:
| 传闻条目 | 实际情况(截至 2026-10 官方页核实) |
|---|---|
| 「蓝牙运行时权限是 16 新规」 | 不成立。BLUETOOTH_CONNECT/SCAN/ADVERTISE 分组是 Android 12(API 31) 引入;16 在蓝牙方向只有绑定/配对行为变化 |
| 「健康数据权限变更在这页」 | 不在这页。细粒度健康权限仅影响 targetSdk 36,见 02 页 §六 |
| 「通知要逐个渠道授权」 | 官方 16 两页行为变更均无此项;渠道/通知总开关的运行时权限是 Android 13(API 33) 的 POST_NOTIFICATIONS |
| 「闹钟权限收紧到 16」 | 官方 16 两页均无新增闹钟权限;精确闹钟体系(SCHEDULE_EXACT_ALARM)始于 Android 12(API 31) 并在 13/14 收紧 |
| 「后台播放音频被限制」 | 官方 16 两页无「后台音频」专项行为变更;后台播放限制主要与 Android 14(API 34) 前台服务类型、以及媒体会话改造相关 |
| 「屏幕数据共享新规」 | 官方 16 两页未见「屏幕数据共享」条目;投屏方向可考的是本页 §九 的 VDO 覆盖。个别 QPR 周期的分享改进属次要发布特性,此处按待验证处理 |
本页小结
本页小结:Android 16 的「全应用」变更集中在四条主线:后台配额收紧(JobScheduler/WorkManager/DownloadManager 同一套命门,配套新停止原因与内省 API)、跨进程秩序收敛(广播优先级、Intent 重定向默认防御)、运行时底座演进(ART 内部变更随 Mainline 跨版本下发,HiddenApiBypass 类 hack 库高危)、软着陆机制(16 KB 兼容模式、VDO 覆盖、QPR 级图标主题化)。检测手段高度依赖 App Compatibility Framework 的
am compat开关与 stop reason 日志,年度回归清单照本页命令抄一份即可。
参考资料
- 行为变更:所有应用(官方,本页事实源):https://developer.android.google.cn/about/versions/16/behavior-changes-all
- 兼容性变更框架(全部开关名录):https://developer.android.google.cn/about/versions/16/reference/compat-framework-changes
- JobScheduler 参考(getPendingJobReasons/History):https://developer.android.google.cn/reference/android/app/job/JobScheduler
- 电源管理资源限制:https://developer.android.google.cn/topic/performance/power/power-details
- 任务调度省电最佳实践:https://developer.android.google.cn/develop/background-work/background-tasks/optimize-battery
- 用户发起的数据传输(UIDT):https://developer.android.google.cn/develop/background-work/background-tasks/uidt
- 应用待机分档:https://developer.android.google.cn/topic/performance/appstandby
- 16 KB 页应用指南:https://developer.android.google.cn/guide/practices/page-sizes
- 16 KB 兼容模式(AOSP):https://source.android.google.cn/docs/core/architecture/16kb-page-size/16kb-backcompat-option
- 非 SDK 接口限制机制:https://developer.android.google.cn/guide/app-compatibility/restrictions-non-sdk-interfaces
- Intent 重定向风险解读:https://developer.android.google.cn/privacy-and-security/risks/intent-redirection
- 预测性返回迁移指南:https://developer.android.google.cn/guide/navigation/custom-back/predictive-back-gesture
- 配套设备配对:https://developer.android.google.cn/develop/connectivity/bluetooth/companion-device-pairing
- Companion app streaming(AOSP):https://source.android.google.cn/docs/core/permissions/app-streaming
- ART 随 Play 系统更新下发(官方博客):https://android-developers.googleblog.com/2023/11/the-secret-to-androids-improved-memory-latest-android-runtime-update.html
- 16 KB 官方博客:https://android-developers.googleblog.com/2024/12/get-your-apps-ready-for-16-kb-page-size-devices.html