曾几何时,iPhone 手机以不杀后台进程闻名。在安卓诸多品牌受困于后台进程之际,iPhone 手机却能保留大量后台进程,随意打一个视频软件,切换十几个 App 之后后台依然还在,甚至连播放位置都与之前一模一样。
然而,近几年不少 iPhone 用户发现,苹果手机似乎失去了当初的魔力。在使用过程中,常常遇到杀后台问题。比如打开 iPhone 玩游戏,突然弹出一条微信消息,切出去回复消息,再切回游戏发现游戏后台已经被强制关闭,需要重新登录进入游戏。
▲ 苹果用户反馈
对于手游爱好者来说,“杀死”后台进程这一行为简直难以接受。正在进行的游戏,可能因为后台进程被强制关闭而失败。除了内存占用较大的游戏,微信、QQ、微博等常用软件也经常被杀死后台进程。曾经有小伙伴跟小黑吐槽,“iPhone 现在杀后台也太严重了吧,我微信一天启动十几次,孤独小人看地球的照片我都看腻了”。
复杂的后台机制
从以不杀后台进程闻名到屡屡杀后台,期间 iPhone 手机究竟经历了什么?其实,iPhone 手机原先不杀后台,主要功劳在于墓碑机制。
所谓墓碑机制,也就是当一个程序被系统关闭后,系统允许这个程序给自己立一个“墓碑”,记录着自己“生前”的模样。等到再次使用时,系统会照着它墓碑上的描述,从闪存中加载到内存中去。
换言之,安卓系统是“真后台”,后台 App 会占用大量系统内存。iOS 系统是“假后台”,前台独占内存空间,后台应用会交换到手机的闪存,保存“关闭”前的状态,释放占用的硬件资源,切换后台应用时,从闪存直接调用到内存。我们手势上滑呼出的 iPhone 多任务界面,其实只是近期使用过的 App 列表与快捷方式。
按照墓碑机制的原理,iPhone 似乎可以无限制扩大后台常驻应用,只要保留“假后台”,杀后台问题就不会出现。然而,真实世界里不会出现如此完美的机制,原因在于墓碑机制的缺点。
墓碑机制并非苹果独有,微软曾经的 WP 系统也有墓碑机制。在 WP7 系统下,微软禁止任何第三方应用在后台运行,这样就不耗费运行内存与处理器资源,等到切换应用时,之前的应用会恢复到关闭之间的状态,也就是墓碑机制。
然而,墓碑机制决定了应用进入休眠状态,无法与外界产生联系。因此,苹果对墓碑机制进行修正,在应用完全进入“墓地”之前,苹果还给它多种选择。在 iOS 系统中,应用状态分为五类,分别为未运行、不活跃、活跃、后台与挂起。
未运行状态即完全关闭状态,活跃状态意味着应用正在使用。不活跃状态意味着 App 停止运行,但是内存依然占用,用于保持当前状态。后台意味着应用进入后台状态,一般会持续十分钟,十分钟之后,应用将会自动转为挂起状态。在十分钟后台状态下, App 保持了多个接口,包括 Background Audio 后台音频、Location Services 定位服务、VoIP 语音通话以及 Newsstand 新闻推送等等,基本上与安卓后台功能类似。
之前用户感觉后台应用保持不变,多半因为应用处于不活跃状态与后台状态,因此可以迅速恢复如初。也就是说,iPhone 不杀后台,关键不是完全休眠、不占用内存的挂起状态,而是占用一部分内存的不活跃状态与后台状态。
内存调用机制失衡
苹果手机应用五种存在状态决定了 iOS 系统的流畅程度,墓碑机制的存在让苹果以小内存抗衡安卓大内存手机。然而,随着手机软件内存占用空间越来越大,iPhone 内存调用机制逐渐失衡。
在正常情况下,iOS 将应用内存分为活跃内存与非活跃内存,那些处于不活跃状态与后台状态下的应用,所占用的内存处理器并没有读取它们,但它们依然被放在内存中处于待命状态。如此一来,才会有迅速恢复如初的表现。
然而在非常情况下,比如当前运行软件需要更多活跃内存时,系统就会选择性释放掉不活跃状态软件与后台软件所占用的非活跃内存,让他们直接进入挂起模式。空下来的内存转为活跃内存,从而让活跃应用拥有更好的体验。
简而言之,iOS 系统充分利用所有内存空间,如果有多余内存就分配给处于不活跃状态与后台状态下的应用,让他们随时待命。可当前台活跃应用占用空间过大,灵活的内存分配模式就会失衡。
在日常使用中,很多用户发现,一旦打开相机应用,杀后台现象就会变得异常严重。其实,原因正是因为相机应用需要调用非常大的活跃内存,大量挤占非活跃内存空间,那些不活跃应用与后台应用都会变成休眠挂起状态。等到用户拍完照片之后,切回后台应用,自然发现需要重新加载。
▲ iPhone 内存普遍不大
另一方面,使用较大内存的 iPhone 手机,很少会出现杀后台问题。比如 iPhone 12 Pro Max 与 iPhone 13 Pro Max,拥有 6G 运行内存,虽然比不上动辄 8G、12G 的安卓手机,可在苹果手机中,这样的配置已经属于顶级。拥有更大的内存,让 iPhone 12 Pro Max 与 iPhone 13 Pro Max 在内存调用时拥有更大空间,可以合理分配活跃内存与非活跃内存。
世界上并不存在完美的墓碑机制,iPhone 手机“不杀后台”,是因为其系统会合理分配应用状态,五个级别分别给予不同的内存占用待遇。然而,这一切都无法逃脱物理限制,也就是 iPhone 手机自身的运行内存大小。
如何减少“杀后台”现象
世界在不断变化,软件越来越大,即使强如苹果,也难以应付“杀后台”问题。特别是 iPhone 手机使用寿命长,很多 iPhone 机主还在使用 iPhone8 甚至 iPhone7 手机。老旧的手机意味着运行内存小,一个 2G 运存的 iPhone 手机无论如何也避免不了“杀后台”问题。因此,在能力范围内,小伙伴们最好更换大运存 iPhone 手机,以此从根本上避免“杀后台”现象。
当然,iPhone 大运存手机基本都是顶级配置,售价动辄在一万元以上,并不是物美价廉的选择。对于不愿意换手机的小伙伴,或许可以从细节入手,减少杀后台现象发生。
首先,需要注意的是不要频繁调用相机应用,因为相机需要占用很多内存,这一点难以避免。在玩游戏、写稿、看视频过程中,不要随意打开相机应用,免得后台进程被关闭。
其次,在设置中找到“后台应用刷新”,为经常使用的应用开启该功能,其他应用一律关闭。这样做的好处在于保持常用应用后台使用。
前面小黑提到,iOS 系统为应用设置了五种状态,而后台应用刷新可以让应用保持非活跃状态,从而保持较高的权限等级。系统在清理后台应用时,优先清理没有后台刷新的应用,其次才会选择后台刷新应用。
如此一来,以牺牲其他应用为基础,保证常用应用的使用。当然,这招治标不治本,小伙伴们可以试一下,并不能百分百奏效,具体效果还得看用户打开的应用数量与活跃应用占据内存空间。
在智能手机领域,iOS 系统可谓是王者级别。可再好的系统也无法突破物理极限,应用越来越大,内存占用越来越多,iOS 系统即使再智能也无法合理分配内存空间。俗话说,巧妇难为无米之炊,内存空间小,强如 iOS 系统也无能为力。与其期望 iOS 系统化腐朽为神奇,还不如指望库克幡然醒悟,大幅度提高 iPhone 手机运存大小。
图源:苹果、谷歌、pixabay
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/73623.html