曾幾何時,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
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!