DOC软件文档百宝箱

墓碑机制与后台冻结原理

本篇讲清安卓后台冻结(俗称「墓碑机制」)到底是怎么回事:冻结和杀后台差在哪、CPU 为什么会归零、为什么冻结比查杀更适合当日常省电手段。理解了原理,冻结规则与豁免搭配 里的每个开关就好懂了。相关文档:冻结规则与豁免搭配.md · 装完不生效排查思路.md


一、后台应用的两种归宿:被杀,或被冻住

安卓对后台应用的传统处理方式是查杀:内存吃紧时按优先级结束进程。被杀的应用状态全丢,回前台要重新走一遍启动流程,最近任务里的卡片也可能消失。

冻结是另一种思路:进程还在内存里,只是被挂起——不再参与 CPU 调度、不跑任何代码,但内存里的状态原封不动。点开图标时解除挂起,应用从离开时的那一帧继续,几乎无感恢复。这个做法在 Linux 内核层面有现成的支撑,就是 Cgroup Freezer,社区把这套玩法形象地叫「墓碑机制」——应用还「躺」在后台,只是不再活动。

二、冻结态下发生了什么

一个应用被冻结后:

三、为什么冻结更适合日常省电

后台耗电的大头是「还在干活」的进程:轮询、定位、心跳、后台计算。查杀能停掉它们,但代价是状态丢失、回前台重载,用户感知很差,而且很多应用马上会把自己拉起来,杀与复活来回拉锯。

冻结把「干活」这件事直接停了,又不破坏状态,应用也不会因为被杀而疯狂自启。对常驻后台的应用(社交、音乐、网盘同步类),冻结既压住了 CPU 与网络活动,又保住了「切回去就能接着用」的体验。配合「定时解冻」这类机制,还能让冻结的应用周期性活动一下,避免长期挂起带来的边缘问题。

四、想在手机上体验这套机制需要什么

原生系统里普通用户碰不到 Cgroup Freezer 的开关,这类能力要通过模块化的方式接入系统框架。以 NoActive 这类后台冻结模块为例,它工作在 Xposed 框架之上,因此需要已 Root 的设备、LSPosed 框架与 Android 12 及以上的系统;应用退后台约 3 秒自动冻结、回前台快速解冻,并按应用的运行状态自动豁免(通话、定位、录音、播放中的不冻)。

它的功能总览、四种冻结方式(V2 / API / V1 / KILL)的选择和完整安装步骤,整理在 NoActive 介绍站,这里不重复展开。

五、一句话总结

墓碑机制的本质是「挂起而非杀死」:省的是后台白干的活,保的是切回前台的那份连续体验。理解了这一点,冻结方式怎么选、每个应用的白名单怎么配,都成了围绕这个核心的参数调优而已。

同站更多