移动互联网

iOS 13.2疯狂杀后台的背后,是苹果为提升系统稳定的良苦用心?

2019/11/5 15:59:00

苹果最近让人很“糟心”。先是10月30日在全球范围内短暂关闭了关键词热度接口,让不少开发者、运营人员一脸懵逼。紧接着又传出新申请的开发者账号无法通过支付完成注册,导致不少应用产品无法如期上架。

当然,近来苹果最让人糟心的还属iOS 13.2系统,其“疯狂杀后台”的迷之操作让不少用户苦不堪言。


3.jpg


前些日子,有不少iOS 13.2的用户都反(吐)馈(槽)说他们的iPhone内存管理机制突然就抽风了,多个App都遭遇到“杀后台”的现象。有的严重到稍微切换不同的应用,后台中停留没多久的应用就需要重新打开才行,这也导致部分应用出现数据丢失的情况。

举个例子来说,就是你接个电话回来可能会发现你之前写到一半的邮件没了,之前打的游戏进度丢失了,看一半的视频被关了等等“灾难性”现象,这些足以让用户怨声载道。

而关于iOS 13.2疯狂杀后台的原因,此前有不少用户将矛头指向微信。因为有开发者在分析了系统日志后发现微信在后台频频调用wakeup,平均每秒唤醒超过300次,因此猜测是微信滥用唤醒机制才导致iOS 13.2杀后台。


1.jpeg


但事实上微信也只是一个受害者,包括像YouTube、Instagram等App,甚至还有苹果自家的Safari,它们都惨遭iOS 13.2所支配,哪怕两个应用切换间隔仅几秒也会被杀得一干二净。

那么是什么原因导致iOS 13.2疯狂杀后台呢?

观点1:与应用后台频频调用Wakeup无关

首先我们要弄清楚iOS日志里记录的“Wakeup”并不是App使用意义上的“唤醒”,而是线程级别的唤醒。通过查询资料获悉,Wakeup指的是线程与线程的通讯,当发生异常情况,不管是App代码或系统层面,会频繁地进行线程唤醒。

以微信为例,近来发现的微信后台被多次“唤醒”,实际上并非App的唤醒,而是微信后台进程的唤醒。一般在使用App时,如果关闭屏幕,或者进入另外一个App,苹果系统会把其所有进程停下来。

但有时候,因为需要持续获取用户定位,计算行走路线等,App的进程是不能完全停下来的。这个时候,如果App还想继续运行这些功能,则需要开启一个后台进程。然而,苹果为了系统稳定起见,不会允许这些后台进程一直运行,一定程度上会杀死这些后台进程,也就是“杀后台”。

然后这就产生了一个循环的现象,后台进程在检测到自己将要被苹果系统杀死的时候,会打开一个新的进程。所谓“Wakeup”就是指在这种情况下打开一个新的进程,继续进行上一个被杀死进程的功能。

而如果苹果系统频繁杀死后台进程,后台进程就会频繁的“Wakeup”,于是这就出现了微信这种平均每秒唤醒超过300次的情况。换句话说,微信这种“频繁唤醒”的情况本来就是App在面对苹果系统“杀后台”特性的解决方案(不过“频繁唤醒”并非任何情况下都有效,进入后台的App有时候还是会被“彻底杀死”,再次打开就会重新打开APP),不是造成iOS 13.2疯狂杀后台的原因。

观点2:苹果自己偷偷增加了“彻底杀后台”的概率

有网友表示“iOS 13.2疯狂杀后台”的现象在iOS 13.2测试版中就已存在,期间也不断有用户向苹果报告问题,结果在正式版中这个Bug非但没解决,反而变本加厉。

这很有可能是苹果在更新到iOS 13.2后,增加了“彻底杀后台”的概率,以至于之前使用的“频繁唤醒”的解决方案已经不管用了,所以才导致如今的问题。如果真是如此,那么目前苹果还未修改Bug或是降低“彻底杀后台”的概率,各个应用App可以改进自身应对“杀后台”特性的解决方案来解决被频繁杀后台的危机。

目前来看微信似乎想到了这一层面,在微信最新的回应里,微信称“近日,我们收到少量用户反馈,用户在升级iOS 13.2版本后,App回到手机桌面或锁屏后可能会被系统关闭,下次打开需要重新启动。目前,通过紧急联调,该问题已基本修复。如个别用户在使用上仍有问题,可联系我们解决。”

是的,在苹果还没自我修复Bug前,微信就已经能够自主解决问题。这说明什么呢?这个Bug是苹果有意而为之?或者说苹果就压根没有把这个当做Bug,本来就是一种为提升系统稳定的尝试。你怎么看?

本文由蝉大师原创,首发于公众号:蝉大师(ID:chandashi88)

版权声明
本文仅代表作者观点,不代表艾瑞立场。本文系作者授权艾瑞专栏发表,未经许可,不得转载。
  • 合作伙伴

  • 官方微信
    官方微信

    新浪微博
    邮件订阅
    第一时间获取最新行业数据、研究成果、产业报告、活动峰会等信息。
     关于艾瑞| 业务体系| 加入艾瑞| 服务声明| 信息反馈| 联系我们| 广告赞助| 友情链接

Copyright© 沪公网安备 31010402000581号沪ICP备15021772号-10