iPhone|从以不杀后台进程闻名到屡屡杀后台,iPhone究竟经历了什么?

iPhone|从以不杀后台进程闻名到屡屡杀后台,iPhone究竟经历了什么?

文章图片

iPhone|从以不杀后台进程闻名到屡屡杀后台,iPhone究竟经历了什么?

文章图片

iPhone|从以不杀后台进程闻名到屡屡杀后台,iPhone究竟经历了什么?




其实 , iPhone 手机原先不杀后台 , 主要功劳在于墓碑机制 , 所谓墓碑机制 , 也就是当一个程序被系统关闭后 , 系统允许这个程序给自己立一个“墓碑” , 记录着自己“生前”的模样 。 等到再次使用时 , 系统会照着它墓碑上的描述 , 从闪存中加载到内存中去 。



换言之 , 安卓系统是“真后台” , 后台 App 会占用大量系统内存 。 iOS 系统是“假后台” , 前台独占内存空间 , 后台应用会交换到手机的闪存 , 保存“关闭”前的状态 , 释放占用的硬件资源 , 切换后台应用时 , 从闪存直接调用到内存 。 我们手势上滑呼出的 iPhone 多任务界面 , 其实只是近期使用过的 App 列表与快捷方式 。

【iPhone|从以不杀后台进程闻名到屡屡杀后台,iPhone究竟经历了什么?】


按照墓碑机制的原理 , iPhone 似乎可以无限制扩大后台常驻应用 , 只要保留“假后台” , 杀后台问题就不会出现 。 然而 , 真实世界里不会出现如此完美的机制 , 原因在于墓碑机制的缺点 。 墓碑机制并非苹果独有 , 微软曾经的 WP 系统也有墓碑机制 。 在 WP7 系统下 , 微软禁止任何第三方应用在后台运行 , 这样就不耗费运行内存与处理器资源 , 等到切换应用时 , 之前的应用会恢复到关闭之间的状态 , 也就是墓碑机制 。




然而 , 墓碑机制决定了应用进入休眠状态 , 无法与外界产生联系 。 因此 , 苹果对墓碑机制进行修正 , 在应用完全进入“墓地”之前 , 苹果还给它多种选择 。 在 iOS 系统中 , 应用状态分为五类 , 分别为未运行、不活跃、活跃、后台与挂起 。




未运行状态即完全关闭状态 , 活跃状态意味着应用正在使用 。 不活跃状态意味着 App 停止运行 , 但是内存依然占用 , 用于保持当前状态 。 后台意味着应用进入后台状态 , 一般会持续十分钟 , 十分钟之后 , 应用将会自动转为挂起状态 。 在十分钟后台状态下 ,  App 保持了多个接口 , 包括 Background Audio 后台音频、Location Services 定位服务、VoIP 语音通话以及 Newsstand 新闻推送等等 , 基本上与安卓后台功能类似 。



之前用户感觉后台应用保持不变 , 多半因为应用处于不活跃状态与后台状态 , 因此可以迅速恢复如初 。 也就是说 , iPhone 不杀后台 , 关键不是完全休眠、不占用内存的挂起状态 , 而是占用一部分内存的不活跃状态与后台状态 。