前几天苹果系统发布了最新的13.2版本后,微信被爆在后台频繁“唤醒”达几万次,由于次数太多,导致被苹果系统“*死”。
关闭手机电源,或者退出微信,微信都会被“*死”,再次打开后重启。
如果此时正在查看资料,或者聊天,则之前看的资料可能再也看不到,聊天也要重新打开,体验很不好,而支付宝体系的部分软件并没有类似的问题。
于是可以不少人推测,是微信IOS版的BUG,而且微信也公开消息称已经关注该事件,并在努力解决问题。
但指尖科技说咨询了资深IOS开发工程师,发现这次的问题可能不是这么简单。
“频繁唤醒”原本就是一种解决方案首先,微信后台被多次“唤醒”,实际上并非APP的唤醒,而是微信后台进程的唤醒。
一般用APP时,如果关闭屏幕,或者进入另外一个APP,苹果系统会把APP所有进程停下来。
但有时候,APP不能完全停下来,例如APP需要持续获取用户定位,计算行走路线等,微信完全停下来,那画的路线就断了。
这个时候,如果APP还想继续运行这些功能,则需要开启一个后台进程。
然而,苹果为了系统稳定起见,不会允许这些后台进程一直运行,一定程度上会*死这些后台进程,也就是“*后台”。
于是就有了一个非常有趣的方案:
后台进程在检测到自己将要被苹果系统*死的时,会打开一个新的进程。
所谓“唤醒”,实际上就是打开一个新的进程,继续进行上一个被*死进程的功能。
而如果苹果系统频繁*死后台进程,后台进程就会频繁打开新进程,于是就会出现网友看到的“频繁唤醒”的现象。
也就是说,“频繁唤醒”本来就是APP面对苹果系统“*后台”特性的解决方案。
可能是苹果系统更新导致实际上,“频繁唤醒”并非任何情况下都有效,进入后台的APP有时候还是会被“彻底*死”,再次打开就会重新打开APP。
在旧版本的苹果系统中,其实一直有APP被“彻底*死”的现象,只是没有13.2版本这么快。
苹果很可能增加了“*后台”和“彻底*后台”的概率。
实际上,苹果更新到13.2版本后,包括微信的大部分app很可能都没有想到苹果系统会增加“彻底*后台”的概率,所以仍然使用之前的“频繁唤醒”的解决方案,导致如今的问题。
从这个角度来看,很可能是苹果系统更新后,并没有告知开发者后台“频繁唤醒”方案已经不好用导致。
支付宝为什么没事?实际上支付宝体系的APP,应该也存在类似问题,但是可能没有微信这么严重。
不过,从开发者的角度来看,支付宝的现象应该也说明,除了微信的“频繁唤醒”方案之外,可能还有其他解决方案,或者缓解方案。
另外资深技术人员认为,从技术角度来看,由于微信功能非常丰富,微信要单独解决这个问题,可能要排查所有后台功能,工作量应该很大,估计没这么快完成。
不过目前该问题应该还不是使用微信的致命问题,对用户的影响应该是有限的。