微信為什麼頻繁“喚醒”,真的是BUG嗎?資深開發者說明了原因

前幾天蘋果系統發佈了最新的13.2版本後,微信被爆在後臺頻繁“喚醒”達幾萬次,由於次數太多,導致被蘋果系統“殺死”。

關閉手機電源,或者退出微信,微信都會被“殺死”,再次打開後重啟。

如果此時正在查看資料,或者聊天,則之前看的資料可能再也看不到,聊天也要重新打開,體驗很不好,而支付寶體系的部分軟件並沒有類似的問題。

於是可以不少人推測,是微信IOS版的BUG,而且微信也公開消息稱已經關注該事件,並在努力解決問題。

微信為什麼頻繁“喚醒”,真的是BUG嗎?資深開發者說明了原因

但指尖科技說諮詢了資深IOS開發工程師,發現這次的問題可能不是這麼簡單。

“頻繁喚醒”原本就是一種解決方案

首先,微信後臺被多次“喚醒”,實際上並非APP的喚醒,而是微信後臺進程的喚醒。

一般用APP時,如果關閉屏幕,或者進入另外一個APP,蘋果系統會把APP所有進程停下來。

微信為什麼頻繁“喚醒”,真的是BUG嗎?資深開發者說明了原因

但有時候,APP不能完全停下來,例如APP需要持續獲取用戶定位,計算行走路線等,微信完全停下來,那畫的路線就斷了。

這個時候,如果APP還想繼續運行這些功能,則需要開啟一個後臺進程。

然而,蘋果為了系統穩定起見,不會允許這些後臺進程一直運行,一定程度上會殺死這些後臺進程,也就是“殺後臺”。

於是就有了一個非常有趣的方案:

後臺進程在檢測到自己將要被蘋果系統殺死的時,會打開一個新的進程。

所謂“喚醒”,實際上就是打開一個新的進程,繼續進行上一個被殺死進程的功能。

微信為什麼頻繁“喚醒”,真的是BUG嗎?資深開發者說明了原因

而如果蘋果系統頻繁殺死後臺進程,後臺進程就會頻繁打開新進程,於是就會出現網友看到的“頻繁喚醒”的現象。

也就是說,“頻繁喚醒”本來就是APP面對蘋果系統“殺後臺”特性的解決方案。

可能是蘋果系統更新導致

實際上,“頻繁喚醒”並非任何情況下都有效,進入後臺的APP有時候還是會被“徹底殺死”,再次打開就會重新打開APP。

在舊版本的蘋果系統中,其實一直有APP被“徹底殺死”的現象,只是沒有13.2版本這麼快。

蘋果很可能增加了“殺後臺”和“徹底殺後臺”的概率

微信為什麼頻繁“喚醒”,真的是BUG嗎?資深開發者說明了原因

實際上,蘋果更新到13.2版本後,包括微信的大部分app很可能都沒有想到蘋果系統會增加“徹底殺後臺”的概率,所以仍然使用之前的“頻繁喚醒”的解決方案,導致如今的問題。

從這個角度來看,很可能是蘋果系統更新後,並沒有告知開發者後臺“頻繁喚醒”方案已經不好用導致。

支付寶為什麼沒事?

實際上支付寶體系的APP,應該也存在類似問題,但是可能沒有微信這麼嚴重。

微信為什麼頻繁“喚醒”,真的是BUG嗎?資深開發者說明了原因

不過,從開發者的角度來看,支付寶的現象應該也說明,除了微信的“頻繁喚醒”方案之外,可能還有其他解決方案,或者緩解方案。

另外資深技術人員認為,從技術角度來看,由於微信功能非常豐富,微信要單獨解決這個問題,可能要排查所有後臺功能,工作量應該很大,估計沒這麼快完成。

不過目前該問題應該還不是使用微信的致命問題,對用戶的影響應該是有限的。


分享到:


相關文章: