iPhone到底要不要關閉後台程序?這問題到現在還是衆多紛纭,一方認為不關閉後台會造成耗電卡頓;另一派認為iPhone不需要關閉後台app,不關閉後台app不會造成iPhone耗電,反而會經常關閉後台app才會更加耗電!
那到底是經常關閉 後台App 會不會導緻耗電還是省電?這篇直接告訴大家正确答案
iOS 後台運作原理這問題過去就有外媒寫信問過庫克,最後也沒有獲得明确答案,那時蘋果公司軟體工程進階副總裁Craig Federighi隻有稍微回應「關閉後台是否會讓設備變得更省電」
iPhone 導緻耗電,多少都會跟後台有點關系,稍微說明iOS 程序的壽命周期
Not running(未運行):程序沒啟動
Inactive(未激活):程序在前台運行,不過沒有接收到事件。在沒有事件處理情況下程序通常停留在這個狀态
Active(激活):程序在前台運行而且接收到了事件。這也是前台的一個正常的模式
Backgroud(後台):程序在後台而且能執行代碼,大多數程序進入這個後台後會在在這個狀态上停留一會。時間到之後會進入挂起狀态(Suspended)。有的程序經過特殊的請求後可以長期處于Backgroud狀态
Suspended(挂起):程序在後台不能執行代碼。系統會自動把程序變成這個狀态而且不會發出通知。當挂起時,程序還是停留在内存中的,當系統内存低時,系統就把挂起的程序清除掉,為前台程序提供更多的内存
看一下iPhone運行内存狀态圖一是剛開機後的内存分布狀态
圖二是正常使用将近一周,沒有刻意關閉後台程序的内存分布狀态
可以看出總内存空間4GB(将近)
剛重啟後空閑的的空間僅為600MB,而運行了一周的空閑空間為100MB左右
iOS 系統運行内存總是占滿90%以上,僅會剩餘1xx MB,在這種情況下,就算開啟再多App 不從後台關閉,都不會出現類似Windows 或Android 延遲卡頓情況,主因是iOS 在後台運行内存控管相當優秀,用戶完全不需要手動釋放運行内存,更不需要随時注意空閑記憶體剩餘多少,iOS 會自動釋放久未執行的App
當使用者啟動App後,使用到一半再退回主界面或開啟另一款App時,前款App會常駐在後台中進入後台模式,簡單來說就是沒在使用的App會呈現凍結,依舊會停留在内存中,下次要再啟動App時,就能在最短時間恢複執行,也是為什麼iOS常駐在後台App在啟動速度比起新開啟的App來得更快
舉例來說,大家常用的綠色聊天軟件 ,切換到後台後,再次打開就會迅速的直接進入到程序界面,如果從後台關閉重新再開,會先看見啟動畫面等個幾秒才會真正進入程序界面
一個是後台模式,程序保留在運行内存中;一個是未運行狀态,重新打開
不關閉後台更省電!?軟件使用完畢後切到後台,會進入「後台」和「挂起」階段,不會在後台一直運行,更不會造成耗電。反而經常習慣将App從後台全部關閉,從新開啟app會造成更加耗電,因為重開App時,會從新執行一輪「熱啟動」,調整與占用運行内存,處理過程還需要CPU、閃存等硬件配合執行,導緻設備更耗電
從上面來看,确實不要關閉iPhone後台的應用程序,不關閉後台程序可以帶來省電效果
但這說法隻對一半,并非完全正确
為什麼呢?底下繼續來分析
那怎麼才能更省電其實在iOS 「後台App刷新」官方說明給出一個提示,就是告訴你關閉後台App也是會導緻耗電
後台App刷新:使用Wi-Fi或蜂窩網絡時,允許App在後台中刷新内容。關閉App 有助于節省電量
進入iOS 「設置」>「通用」>「後台App刷新」,将不常用和不需要持續在後台不斷刷新的App給關閉,僅需要留下高頻日常app和需要在後台工作的軟件(導航app和打車app這類)
兩個原則
不需要關閉後台app
關閉「不常用app」後台刷新權限
,