对于很多的 iPhone 用户来说,可能都会认为关闭后台程序可以让设备的速度变得更快,或者是更省电,在很多关于 iPhone 省电加速等技巧类的文章中都会提到,关闭 iOS 后台程序是帮助设备省电最直接的方法。但是,关闭 iOS 后台程序真的会让 iPhone 更省电吗?
思维误区——应用程序不关占内存
大多数人有个认识:程序在后台运行会占用内存,且运行也会提高系统的耗电量,导致手机卡顿、电池续航下降。没错,如果你是用的Windows系统,确实是这样的,设备进程越多,内存占用越多,后台程序一直运行,反复读写,也就越耗电。
但是,这是iOS系统。
后台程序运行的原理可跟Windows不一样。
iOS的优势——应用后台挂起不占CPU
在苹果的 iOS 系统中,软件的运行状态大概分为三种:分别是当前运行、后台挂起和后台刷新。
当用户打开某个软件时,这个软件就是当前运行状态,这个很容易理解:当用户按下 Home 键或者切换到另外一个软件时,先前运行的软件就会处于挂起状态(音乐播放类软件除外),软件处于挂起状态时占用的资源非常少,同时也是被“冻结”状态,不会在后台进行读写操作。当系统内存不足时,iOS 系统会自动将暂停时间比较长的软件彻底关闭,将其占用的资源分配给当前运行状态的软件。
iOS 系统软件的第三种运行状态是后台刷新,就是软件进入多任务后台之后自动刷新内容,也就是常说的「真后台」,现在的 iOS 系统已经可以支持软件在后台运行。进入设置-通用-后台应用刷新,打开应用刷新的开关,软件才会在后台运行。
iOS的后台任务,除了极少数可以后台运行之外(比如音乐播放),绝大多数在后台都是挂起的。iOS没有为IPA准备虚拟内存。如果前台软件内存不够用,iOS会直接释放后台软件所占用的内存,并不会像Windows那样用硬盘虚拟内存(引起耗电增加)。
而释放一块内存很简单,就是把内存块的某个标志由“占用”改为“空闲”即可,内存的内容直接废弃丢掉,不用交换到闪存,速度很快,所以可见,我们使用Windows的经验不适用于iOS。
其实苹果IOS多任务设计的目的,是让你忘掉多任务的存在,像IOS 3.x的单任务一样使用多任务,想运行哪个软件就运行它,不想运行就直接按HOME,无论后台开多少个软件,都不会拖慢前台软件(这本来嘛,后台都挂起状态不占CPU)。这一点对windows来说是难以想象的,但苹果的确是做到了。
注意——频繁关闭后台程序有害无益
当用户每一次将软件关闭,就会让本来不需要重新载入的软件,被动的重新载入一次,在软件重新启动时,往往要消耗手机更多的电力,此前曾有苹果员工表示,当用户关闭软件时,会感觉软件占用的系统资源被释放,达到了自己想要的效果,实际上,这样反而会让手机更加耗电。频繁关闭后台会让软件不断的关闭、载入,反反复复的过程会消耗更多的电量。
所以,苹果iOS系统频繁的关闭后台程序并不能省电,在我们认为后台程序"运行"会费电的时候,苹果的工程师早已解决了这个问题。在一定程度上,iOS系统比我们想象中的更聪明。所以在日常使用中不要再频繁的关闭后台了:
“一个完全暂停的后台任务如果还能让它继续跑电做无用功,你也太小看苹果的系统设计师了。”