Android 14之 动态Broadcasts可能被延迟送达

480 阅读1分钟

动态注册Broadcasts可能被延迟送达

当应用程序进入到缓存进程中时,这些应用程序对应的动态注册广播会被缓存到系统的一个动态注册广播队列中,等待应用程序从缓存状态唤醒时,其对应的多个广播可以一次性送到。

目前手机运行内存很高,很多应用可以一直在后台处于缓存状态,这就造成了电量,性能的消耗,Android 14 目前只针对缓存进程做了限制,也是出于省电优化的思考点。

  • 为了确定在内存不足时应该终止哪些进程,Android 会根据每个进程中运行的组件以及这些组件的状态,将它们放入“重要性层次结构”。进程类型(按重要性排序)
  • 前台进程可见进程服务进程缓存进程
    状态正在与用户交互正在运行后台运行存活不一定工作
    被回收顺序较低较高
    举例游戏,视频透明弹窗后的可见应用后台音乐,下载不再使用且退回到后台

业务注意点:

  1. 广播实时性可能会收到影响
  2. 多个广播一起到达处理

谷歌对于广播的收紧策略

graph TD
Start --> Android7 --> Android8 --> Android9 --> Android14 --> Stop
Android7 --> 隐式广播做限制
Android8 --> 隐式广播被全面限制
Android9 --> 用户信息在广播中被限制
Android14 --> 应用进入缓存时广播被延迟送到