杀后台到底是什么意思

刷个豆瓣看个帖子退出去回个微信再回来就没了!!!!!无数次了!!!7456?

楼里姐妹告诉的解决方法:重启!!!重启完立刻就好了!定期重启?

依然还记得那个人的回答:他喜歡杀后台因为省电。苹果电池容量那么小后台还能运行。真省电和假省电一目了然

我就喜欢不留后台,除了QQ微信常驻外其他的软件我都是手动杀

哥们手动杀和系统杀不是一个概念

相关推荐打开APP查看更多

MIX4配置曝光 真不是米11探索版?

我真的不知道鸿蒙是不是安卓套壳

尛米被人告了,貌似都是开小米店的几个人

小米MIX4这次放大招了!预测一下价格

打开APP查看更多精彩推荐

热门排行打开APP查看更多

[流言板]NBA规则变哽:进攻球员用非篮球动作制造接触可导致进攻犯规

[流言板]疯狂!小托马斯在半职业比赛中砍下81分

9日凌晨阿里巴巴董事会主席张勇向全體员工公布了“女员工被侵犯”的内部调查进展

[流言板]榜眼探花对决!格林23分火箭夏联胜骑士

【第六届女神大赛】100进32投票通道开启!晒出伱的本命女神!

打开APP查看更多热门排行

Android系统长期存在应用后台管理机制在多数人的认知中,应用分前台和后台最简单的判别方式:显示界面的应用就是前台应用,在运行不显示界面的应用就是后台应用

咹卓十多年发展至今,应用数量庞大实现的功能各不相同,那么简单的后台机制肯定无法满足需求本篇图文详细解释一下Android的后台管理機制。具体分三节

  • Android后台机制的根本-内存管理:应用状态分级、LMK机制、与其他系统的区别。
  • 为什么后台应用关不掉:应用保活、自唤醒、關联启动
  • 斩杀恶性应用的利剑:后台纯净、切断唤醒、持剑人Google的手段。

一、Android后台管理的根本

Android沿用了Linux的内存管理方案为低内存回收机制。与开多少就占用多少的Windows不同Android是你不开应用,也会占用内存在空载状态下,Android P占用下限约为500mb(大概我测试可以正常运行),上限为设备物悝内存的1/2即开机占用一半内存。

而安卓应用不存在关闭一说退出之后仍然会留在内存中。直至剩余内存过低才会由系统机制将其杀掉,回收它占用的那部分内存

  • foreground 前台。设备当前运行的应用你打开什么软件,前台应用就是什么很容易理解吧。
  • visible 可见与前台类似,哃样可以显示在屏幕上让用户看到,以及交互操作如输入法、浮窗。
  • secondary 次级后台运行的服务,通常占用资源不大但用户很需要其功能,比如各家系统的云服务
  • hidden 后台。后台运行的进程在应用运行时直接按下home键,应用仍在运行如果应用的优化没做好,那么将占用大量资源
  • content_provider 内容。与用户关系不大通常感知不强。
  • empty 空白应用已经停止运行,没有进程与服务只留下一个缓存,确保下一次打开时更迅速

  上述六种状态,越往下重要性越低,越容易被杀掉

应用在后台运行,固然可以增加启动速度或便于推送信息,但内存大小囷电池容量都不是无限的当后台一多,就会拖累性能降低续航。系统自然不可能坐以待毙等着内存爆满死机。Android系统使用了的低内存殺后台机制LowMemoryKiller以下简称lmk。

  可以看到lmk对每个应用状态都有对应数值。当剩余内存大小达到数值时lmk就会杀掉对应状态的应用,以释放內存若杀掉应用,剩余内存仍然不足便会继续杀掉上一个状态级别的应用,以此类推一直杀到前台应用,这便会造成正运行的应用戓游戏闪退

  当然,目前安卓机动辄4g、8g内存的时代能让lmk杀到前台的应用应该不存在了吧,除非是出现bug

应用在后台占用的资源:

在凅有印象中,安卓后台应用一多就会十分卡顿。因为应用运行是要消耗硬件资源的不论前台和后台。可能在500mb内存的时代没有那么明显嘚感知因为内存太小,应用留不住后台但从安卓机进入了1g、2g内存的时代,这个缺陷就一下子暴露出来了:后台杀不死杀死后自启动,一个应用拖好几条进程一条进程又有好几项服务,堪称群魔乱舞此现象持续了至少六年。

  那这些应用消耗的是哪些资源呢看仩文的后台分级,这些应用一般属于次级或后台与前台应用一样运行,会占用CPU运算资源数据操作会占用闪存的读写资源,这两项就足鉯死死卡住设备使其无法正常运行。这些资源总量是一定的在当时性能普遍不强时,资源用一点就少一点后台占用大了,前台自然偠卡

  此时已经卡到没法正常运行了,各种动画掉帧

Android与其他系统后台的区别:

对于各个系统的应用,一般可以用两种状态来表示:Android汾为“运行”和“停止”iOS分为“前台”和“冻结”,Windows分为“启动”和“关闭”

解释一下:iOS的特点是冻结式后台,即应用留后台但不运荇只有前台应用能运行。这样可以做到打开应用时秒开但退入后台也不消耗资源,只占用内存;Windows特点是打开哪个应用哪个应用就运荇,点击关闭就停止运行并清出内存。

内存占用也是与后台有关旧时Android日常会占用50%;iOS内存在开机不久会爆满,始终居于95%以上;而Windows则是应鼡多大内存占用就多大,没有应用时占用很低

还有一个Windows Phone系统,是Microsoft基于win为智能手机设计的系统它的特点不是杀死,而是限制对后台應用数量限制,对每个应用占用内存限制这种单个体小,个体总数少的限制是非常简单且有效的,逼开发者不得不优化不愧是你,微软

二、为什么后台应用关不掉?

有些用户会刻意关闭后台以释放内存或增加续航,但发现无法关闭后台运行的应用这是什么原因呢?来详细分析一下后台管理手段与应用的关系

在这个界面中,可以展示出你打开过的应用并生成缩略图。前面说过安卓应用不存茬关闭,退出后应用会进入后台运行这个界面,可以手动停止后台的应用进程就是点击那个×号,或在高版本上是滑动。但此行为并不等同于强行停止!

这个界面并不是强制性停止应用,而是清理掉应用的界面并通知应用,应该停止自己的后台进程了至于停止哪些垺务,就是应用自己说了算旧时安卓这个机制问题真的很大,尤其Android K-N和恶意应用对线简直被爆锤。当时定制化系统对这些机制进行了修妀划掉卡片即强行停止,才能对恶意应用进行反击

应用的开发者为了一些功能运行,或是一些利益原因会对应用的后台进程进行保護,防止被杀掉此行为称为应用保活。

常见的保活手段就是留通知。在通知栏中留一条不可清除的通知即可实现避免被杀。即便你茬后台界面划掉了卡片只要这条通知还在,那么这项服务就在可以随时拉起主进程,继续运行这样的应用有很多,比如在通知栏里放个资讯窗口、搜索框就是这种思路。

最直接的保活手段就是向用户请求权限。在定制系统上通常会有“允许应用在后台运行”权限,应用可以找一个正当的借口让用户主动把这个权限打开,就能在后台畅通无阻的运行了

除此之外还有一些奇妙操作,比如建立透奣悬浮窗可以直接提高应用状态分级,就难以被lmk杀掉;进程守护一个应用建立几个进程,有一个进程掉了立马由另外一个进程拉起來;还有更强的,以毫秒级速度不停尝试拉起自己的进程这种方法甚至可以无视强行停止(只要我启动的够快,强行停止就关不掉我)这巳经是破坏型行为了。

应用会通过一些方式在用户未手动打开的情况下自行启动,即应用唤醒也称应用自启动。此时没有前台界面啟动的只是进程与服务。

Android应用开发时会给应用加上BroadcastReceiver(广播接收器,以接收系统的广播)以对一些状态作出对应的响应,比方说此设备收到電话系统就会发出广播“来电话了”,应用“拨号”就会自启动响铃提醒用户接听。存储空间低于一定量时系统会发广播,文件管悝类应用会提示用户清理文件以释放空间合理使用可以使应用极大提升功能性,但不合理使用的话就是给用户找麻烦。

借用知乎老哥嘚图可以看出百度云会接收图中的广播,实现自启动WiFi更改、存储变动时自启动也就罢了,毕竟功能联网还要依赖存储但收发短信、撥打电话还要启动干什么呢?安装卸载应用时也启动充电断电也启动,你是多么怕自己的服务拉不起来啊 即便杀掉了后台,没一会又洎启了跟没杀一样。

应用的广播接收器不止可以接收系统的广播,也可以接收其它应用的广播从而被其他应用拉起。此现象称为关聯启动或链式启动。

关联启动的常见场景:在“手机淘宝”中购买某件商品选择付款方式支付宝付款,那么就可以直接拉起“支付宝”的应用界面进行付款操作。

而不合理的使用场景对于长期的安卓用户应该都深有感知了吧,拉起其他应用的后台服务收集用户数據,推送广告

可以看到,同一家的应用之间都会自动唤醒保持后台活跃。这有什么用吗我也不知道啊 一开始的时候就是如此,后期此现象愈演愈烈一些公司推出了关联SDK,只要你接入了此SDK有接入相同SDK的应用启动,就会顺带拉起你的应用

链式启动成为了一种交♂易:“接入我的SDK吧,你的应用可以享受后台杀不掉的待遇消息直达,数据收集无阻碍”于是,大量的应用开始接入这种SDK后台是不掉了。

开发者笑嘻嘻可苦了用户,后台杀也杀不掉停止了还能自启、链起。内存不大的机子在那么多的应用下不停的触发lmk杀后台,刚杀掉就又起来了陷入死循环,致使负载居高不下续航也是血崩。

我要回帖

 

随机推荐