昨天和BOSS聊到想换苹果手机的问题,除思考需要多少鸡腿兑换外,更抱怨安卓用久了以后始终有卡顿问题,对于这个问题,小狮子通常会采取定期清理手机存储空间或删除程序来解决,而日常关闭后台程序也是一个解决办法,然而,随手滑动关闭后台程序这件事儿上,我们真的做对了吗?
偷电偷资源的后台程序
从占用资源到耗电,智能手机从开始普及就面临后台程序这个事儿。
手机系统一般将后台程序分为两种,一是“后台挂起”程序(占用少量内存),另一种则是“后台频繁刷新”程序(高耗电高耗流量)。“后台频繁刷新”程序虽然耗电量多,但这些程序很多正是在为我们提供服务,因此不能因为耗电高而把它们完全关闭,但可以按照自身需要把不必要的高耗电程序关闭。
那么如何找到自己不需要的高耗电程序呢?手机用户可以在手机设置中找到“电池”选项,随后点击“耗电排行”,此时,用户就可以查看自己手机中哪些是高耗电程序,然后再根据自身需求关闭自己不需要的程序即可。
事实上,安卓系统进程本身是分为前台进程(foreground)、可见进程(visible)、次要服务(secondary server)、后台进程(hidden)、空进程(empty)等几大类。
目前正在屏幕上显示的进程和一些系统进程。最迟终止的就是前台程序。所谓前台程序其实就是你目前屏幕上运行着的程序,各种游戏、qq、微博Android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。
所以为什么有的程序切出去重进会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。服务可在后持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service.而你平时用home键调出来并且*掉的,其实就是这个前台进程,但它其实是最无辜的,因为人家在后台也就占占你内存而已,并不造成耗电等问题
当前台程序 (foreground)被用户一个home键打回大西洋的时候,它就进入后台进程的行列。WP、iOS对待第三方应用的后台进程基本上都是墓碑模式,即进入后台即时冷藏;其实安卓4.0后也支持类似的操作,只是需要用户自行解决,同时冤魂不散的后台服务依旧在耗电耗内存污染通知栏。
卡不卡和后台程序关系并不大
说了这么多,加上安卓关闭后台程序的方法,是不是有种是否怪后台程序影响不大的感觉?事实的确如此。
用户最直观的体验即手机“卡”或者“不卡”,这取决于系统对内存和应用程序后台的管理机制。iOS 采用了“墓碑”机制,使应用程序进入后台即变成暂停状态,并建立了一套完整的信息推送机制,即使应用程序处于暂停或者关闭状态,也可以顺畅的接收消息。而 Android 则因为其与生俱来的开放选择了同样“狂野”的内存管理机制,应用推送也全靠自己,简单来说就是“后台进程随便跑,内存不够再*掉”。
泛滥的后台程序造成了大部分用户从 Android 早期到现在留下的根深蒂固的印象,“卡”。从那个年代走过来的人大概都理解,用过一段时间后的旗舰机和中低端手机是一个体验的心酸。
抛开恶意的流氓软件不说,即便是各大互联网企业的正规应用,为了抢占市场份额和日活量,不论是否需要,也会强制在后台留存软件进程,并偷偷下载安装自家的应用程序。还有缺少统一的消息推送体系,导致各家的推送自成一派,同一派系的应用程序会使用同一个推送进程,往往一个应用接收消息,却同时会把所有自己家族的应用程序全部唤醒。这些现象都给 Android 手机的内存管理和电池续航带来巨大的压力。