安卓|安卓版“墓碑机制”火了,而隐藏在这背后的「矛与盾」才是关键

安卓|安卓版“墓碑机制”火了,而隐藏在这背后的「矛与盾」才是关键

文章图片

安卓|安卓版“墓碑机制”火了,而隐藏在这背后的「矛与盾」才是关键

文章图片

安卓|安卓版“墓碑机制”火了,而隐藏在这背后的「矛与盾」才是关键

文章图片

安卓|安卓版“墓碑机制”火了,而隐藏在这背后的「矛与盾」才是关键

文章图片

安卓|安卓版“墓碑机制”火了,而隐藏在这背后的「矛与盾」才是关键

文 | 小伊评科技
最近 , 关于安卓版「墓碑机制」的消息在数码圈火了起来 。 用户通过打开开发者模式 , 然后打开「暂停执行已缓存的应用」

①这里也先科普一下什么是「墓碑机制」 。

我们传统印象中的多任务处理方式 , 就是Windows上的后台 , 俗称为“真后台” 。

在这套体系下 , 后台应用和前台应有基本没有本质的区别 , 只要配置足够 , 消费者可以同时在内存中预留N个应用程序 , 因为电脑是一个有源输入设备 , 不需要去考虑电池消耗的问题 。
但是手机这种移动设备就不一样了 , 因为手机是一个需要依靠蓄电池维持能量输入的设备 , 所以它不可能采用类似Windows的后台管理策略 , 必须要建立起一套合理的退出机制 , 以此来保证设备的“持久性”也就是续航以及前台应用的体验 。
而所谓「墓碑机制」原本就是指IOS系统上的一种多任务的处理策略 。

解释起来很复杂 , 简单来讲 , 在IOS平台 , 手机的资源会优先向台前且正在活跃的进程倾斜 , 而被用户放在后台的程序会被设定为非活跃状态 , 非活跃状态在经过一个恒定的时间之后(10分钟) , 就会被设定为暂停状态 。
在该状态下 , 其后台进程不会占用CPU的资源 , 只会占用内存容量 , 而当系统监测内存容量紧张的时候 , 该应用也会被杀掉 , 但是系统会将其所处的状态保留在闪存当中(可以理解为虚拟内存) , 这就是“应用墓碑” , 下一次用户在打开的时候 , 该状态会被重新赋予 。
这就是苹果的后台处理机制 。 简单来说 , IOS系统的硬件资源会全部供给给前台应用 , 后台应用的资源占用会被极大幅度的削减 。
而且这种机制是被系统限定死的 , 是苹果主导的 。 应用厂商根本无力对抗 , 这一点我们后续会讨论 , 大家先记着 , 我先标红 。
②我们再来看看安卓的后台机制 。

很多人认为安卓的后台机制很混乱 , 其实不是 , 原生安卓系统的内存处理机制其实也是非常完善的 , 它同样也会将进程分为很多个层次 , 有前台进程 , 可见进程 , 二级进程 , 隐藏进程 , 内容提供器 , 空应用等状态 , 这些状态的优先级依次减弱 。
当系统检测到内存不足的情况下 , 系统根据APP优先级的不同将应用进行分批的处理 , 以此来释放内存 , 这也就是大名鼎鼎的LMK(Low Memory Killer)机制 , 这套逻辑本质上没什么问题 。

换句话说 , 原生的安卓系统是等到系统判断内存即将不足的情况下才会开始清理内存中的进程 , 而在被清理之前 , 后台的程序会同时占用CPU资源和内存资源 。
这一点和IOS的后台机制是有些不同 , 因为IOS系统上的后台系统在10分钟无操作之后 , 就不再需要消耗CPU资源 。 所以 , 相比较而言 , IOS的做法会更加的节省资源 , 也就会更加的省电 , 这就是为什么iPhone13到现在还敢用4G运存 , 电池容量明明那么小却比安卓机器更耐用的原因 。
而这一次突然爆火的「暂停执行已缓存的应用」的效果是类似的 , 简单来说就是让放入后台的程序不再占用CPU的资源 , 只是在内存中保留一个状态了 , 以此来降低耗电量和CPU的压力 。