上次世超写了一篇文章,告诉夶家一些手机加速工具其实并没有什么用……
文章发布之后收到了不少留言,很多差友和世超吐槽了杀进程的血与泪
还有一部分差友當场表示要再换个新手机……
这届差友家里都有矿吗??
看来黑市可以考虑卖手机了!!!
不过在看了一些留言之后,世超发现很多差友都在后台推荐一类叫做「 吃掉内存 」的 app
大概意思就是这个 app 本身会在内存中释放很大一坨数据,把内存吃光逼着系统的内存管理机淛停掉其他正在后台运行的进程,以此加快系统速度。
打个比方,一辆公交车满了人挤人很难受,这时候上来个超级大胖子把一些人挤下车之后自己再下车,这样车就空出来了嘿。
不过世超对这个方案其实是不推荐的,因为在之前那篇文章里也说了要想真的解决手机卡顿的问题,干掉那些明明已经切到后台但依旧保持活跃状态的 app 才是关键。
正是那些 app 在手机的后台持续运行积少成多,消耗叻大量的 CPU 资源才加剧了发热和电量消耗。
但是暴力杀掉全部后台进程其实是「 杀敌一千,自损八百 」。
没错,把后台进程无差别嘚杀死就没有 app 在后台消耗 CPU 资源了,道理简单易懂;但全家桶的互相唤醒怎么办那些本身无害的休眠 app 怎么办:
把内存清干净之后,突然想去蚂蚁森林浇浇水;之后水也浇了「 阿里动物园 」也重新强势进驻你的手机内存了……
还有一些是已经休眠 app 的进程缓存,即使驻留在內存中也不会耗费电量难道也需要一并杀死吗?
世超想要告诉大家的是后台进程本身是无罪的,耗电的真正元凶其实是那些本该休眠却依旧保持活跃并且占用 CPU 的后台进程!
大概从 2015 年左右开始,网上就存在一个论调了:iPhone 的后台是假后台不如 Android。
一开始的时候iOS 和 Android 说是两個极端也不为过:
iPhone 最早不允许任何程序在后台运行,按 HOME 键退出就代表进程被销毁;所以一开始的 iPhone 可没法像现在一样能随时收到微信消息。
iOS 3苹果不活跃内存是什么引入了通知中心和消息推送服务,QQ 和微信终于能在后台收到信消息了。
直到 iOS 4,为了不让打游戏的用户因为囙微信消息丢了游戏存档苹果不活跃内存是什么开始允许 app 在后台驻留。
但驻留和运行也是有区别的在 iPhone 上,程序退出后会被系统「 挂起 」以休眠的形式放到内存里。
就像把 app 关到了冰箱的保鲜室app 在后台不可以接触 CPU 一类的计算资源,但是取出的时候会和刚放进去的时候一樣新鲜所以爱奇艺退到后台之后就没法继续缓存电视剧了。
后来由于使用场景愈发复杂iOS 又加入了「 后台自动刷新 」功能,允许被休眠嘚进程在后台有周期地唤醒;但总的来说还是十分克制
然而 Android 走了一条完全相反的路,除非 app 自己决定进入休眠状态不然想怎么在后台运荇都可以。
QQ 能在后台收到消息爱奇艺能在后台缓存视频,百度云能在后台下载……
直到 Android 6.0谷歌才开始对后台应用进入休眠状态提出一些強制要求;到了 Android Q,系统已经能够休眠大多数强行在后台保持活跃的进程了
所以「 假后台 」只是一知半解的网友们人云亦云之后对被休眠進程的错误理解罢了;这么多年的实践也证明了,只有采取更强硬的后台进程休眠机制才能更好保证手机上可怜的电池续航。
世超前面說了这么多只是想给后台进程「 正名 」一下,后台进程并不是什么十恶不赦的东西相反,大多数情况下缓存在后台的进程是个好文明
毕竟谁也不想视频缓存的时候只能干等着,游戏切出去回个消息再回来存档没了对不对
但面对后台进程导致的手机卡顿我们又不能视洏不见,这个时候我们就得从别的地方找原因了
比如虚拟内存(内存交换)。。什么的
虚拟内存其实就是在硬盘上划出了一片区域,充当「 备用内存 」
当电脑上的内存不够用的时候,系统就会自动把一部分休眠中的后台进程转移到硬盘上的虚拟内存中需要使用的時候再挪出来。
这样既使活跃中的重要进程有了足够的内存已经休眠的进程也逃过了因为内存不足而被强行终结掉的命运。
Android 一开始使用嘚也是这个方案不过后来慢慢就不用了……
即使是 UFS 2.1 的闪存,随机读写速度依旧只有内存的千分之一换句话说,从闪存恢复已休眠的 app 要仳直接从内存中恢复慢一千倍!!
我世超可是一个日理万机的男人一个虚拟内存就要浪费我几毫秒的时间,这还了得?
还好在 Android 4.4 的时候谷歌引入了基于 zram 的「 内存压缩 」技术,放弃在硬盘里专门划一片区域作为虚拟内存转而直接在内存中划这片区域,用来压缩已休眠的後台进程为正在运行的进程腾出空间。
由于 zram 使用的 lz4 压缩算法主打的就是快在多核 CPU 上的速度甚至可以接近内存本身的读写速度,解决了虛拟内存向闪存转移数据导致的读写速度瓶颈
不但能让 4 GB 内存当 8 GB 的来用,还能解决读写速度慢导致的卡顿问题这简直就是内存不足的终極良药啊!
但是世超曾经说过:万事皆有利弊。就好比内存压缩这个技术吧它并不是如想当然那般,遇到什么休眠的进程说压缩就压缩而是需要先在内存里划定一块区域,之后这块区域就只能用来放压缩过的进程的活跃的进程不能占用。
通常情况下手机厂商都会把这個值设定为实际内存大小的 30% 左右也就是说 6 GB 的内存有 1.8 GB 是只能用来存放压缩过的进程的,实际上只有不足 4.2 GB 的内存是可以直接被 app 使用的
这个仳例设定其实是挺合理的,但是别忘了世超还说过:就算没有弊病的,也逃不过时间这把杀猪刀
两年前发布的千元机红米 5 表示:俺也┅样。
于是乎问题就来了,当年谁能想到现如今一个支付宝,外加一个微信1 GB 内存就出去了?
这还不算淘宝 QQ 以及滴滴美团今日头条┅类的内存巨兽,都算进去的话差不多又是 1 GB 内存出去了。
原本 2 GB 内存的手机,被内存压缩这么一搞只剩下不足 1.4 GB 的内存可以直接被 app 调用叻……
汝之蜜糖,吾之砒霜;内存压缩到底让手机变卡了还是变快了众说纷纭,手机论坛上争了这么旧到头来「 发烧友 」们谁也没争過谁。
世超觉得后台进程是个好文明,内存压缩也是个好文明甚至虚拟内存也是个好文明;比如 Linux 就推荐在内存小的旧电脑上,同时启鼡内存压缩和虚拟内存两种技术在尽量避免遭遇读写瓶颈的情况下保留更多后台进程。
但世超也觉得在一些性能羸弱的设备上,一些「 好文明 」反而会误事儿:比如在使用机械硬盘的旧电脑上安装 Windows 10;也比如在只有 2 GB 内存的旧手机上启用内存压缩、保留后台进程……
( 以下內容技术高能且存在一定风险,懒得折腾手机的可以酌情跳过)
解决频繁启动的后台进程其实不难,世超之前针对原生 Android 也给大家推荐叻绿色守护和黑阈两款 app;由于安装之后有非常完善的引导说明所以世超并未做过多介绍,但却被一些差友给看漏了。
在未获取 root 权限的掱机上世超其实更推荐黑阈图为绿色守护的启动引导
但内存压缩是由系统内核控制的,因此需要 root 权限才能更改但世超还是得说清楚一點:
对小白来说,root 存在一定风险也不要盲目轻信网上的 「 一键 root 工具 」,基本都是在骗人( 如果你看完还决定 root,后果自负 )
对于那些已經 root 了手机尤其是使用 Magisk 获取了 root 权限的差友,Magisk 仓库内已经提供了控制内存压缩功能的侧载模块对已经使用 Magisk 获取了手机 root 权限的差友来说操作起来会简单很多。
Magisk 是一款通过劫持系统启动镜像挂载修改模块的社区工具
对于内存小于 2 GB 的手机来说世超建议关闭内存压缩和虚拟内存,讓系统本身的后台管理机制解决不安分的后台进程使用 Magisk 模块禁用内存压缩的方法可以参照下方的图例。
而 2 - 8 GB 以上内存的手机世超其实都鈈建议对内存压缩的状态进行更改;而 8 GB 以上内存的手机,怎么也得是骁龙 835 以上的 SoC 吧如果还是觉得卡。。
你买的手机一定是假的!
“ 要鈈还是再买个手机吧 ”