后台原理:三系统各有侧重
多任务模式,除了UI上的应用切换,更多的涉及到了后台进程的运行状况。下面,笔者就来说说iOS、Android、Windows RT的后台原理。我们先来弄清楚:在切换应用时,平板电脑的CPU、内存和网络连接是怎样的状态。
iOS系统:墓碑机制
在多任务方面,iOS系统最出名的就是它的“墓碑机制”,这也是很多人嘲笑“iOS是伪后台”的原因。“墓碑机制”是指:如果某应用当前不在运行状态,那么iOS会自动把该应用在内存里的运行情况以文件的形式保存下来,然后在后台关闭该程序,这时该应用不占用内存与CPU,只是在多任务栏保留一个图标(像墓碑一样)。而当用户下次打开此程序时,iOS会将之前保存的数据再释放出来,应用恢复原貌。这种机制的好处就是比较省内存。
iOS多任务原理(图片来自独立软件作者、专栏作家@ibuick)
当然,并非所有iOS程序在关闭后都会立刻成为“墓碑”,系统会根据关闭时间的长短、内存占用的多少来区别对待。一般情况下,应用程序在切出去10分钟后会先变为“暂停”状态,这时程序停止CPU运算、切断网络连接,但保留内存资源;一旦打开的应用增多,占用内存超过一定额度,那么该程序就会从“暂停”变成“墓碑”。
不过,像iPod之类的音乐软件、蓝牙、通知中心等进程是不受墓碑机制影响的。对于这些应用,只要用户不强行关闭,它就会一直运行。
Android:内存回收机制
与iOS的“伪后台”不同,Android系统的多任务处理采用了“真后台”。安卓依靠“回收内存”规则来实现后台的多任务。
细心的用户会发现,安卓系统的应用是无法直接关闭的,因为系统后台永远挂着许多进程与服务,我们在页面上滑动关闭的仅是这些应用的使用记录。那么开这么多进程不会卡机么?其实,这些后台进程多数时间都处在暂停状态,只占用内存不占用CPU。只有应用运行,对应的进程才会开始工作。
当然,设备的内存毕竟有限,如果进程一直累加,内存迟早会不够用。针对这个问题,Android对后台进程进行了详细的分类,例如:前台进程、可见进程、次要服务、后台进程、内容供应节点、空进程。内存快用完时,系统会根据进程的等级,自动关闭进程从而回收内存。对于一般用户,这种内存回收机制可以满足使用需要,所以我们没必要总用第三方应用“杀进程”。(杀进程后要应用需要重新启动,CPU负担遽增,设备反应会更慢)
Windows RT:有限制的X86系统
或许是源自PC系统的缘故,平板系统Windows RT的多任务原理类似于X86架构下的Windows系统,但增加了很多限制:
首先,Windows RT的应用程序被切换出来后,其进程会停止CPU运算。(桌面Windows不会停止)
其次,Windows RT对网络流量的控制更严格。所有能联网的RT应用,只要切出的时间超过30秒,该应用的网络连接就会被掐断,用户再次进入应用时需要刷新页面。当然,对于一些有下载任务的应用,如Windows Store,系统还是会保持网络连接直到下载完成。在这一点上,X86的Windows系统比较宽松。
通过以上解析,我们已经基本了解了三大系统的多任务原理。那么以上原理在实际运用中会产生怎样的效果呢?下面,我们就来详细解析这些模式会对设备的性能会造成怎样的影响。