對於很多的 iPhone 用戶來說,可能都會認為關閉後台程序可以讓設備的速度變得更快,或者是更省電,在很多關於 iPhone 省電加速等技巧類的文章中都會提到,關閉 iOS 後台程序是幫助設備省電最直接的方法。但是,關閉 iOS 後台程序真的會讓 iPhone 更省電嗎?
思維誤區——應用程序不關占內存
大多數人有個認識:程序在後台運行會占用內存,且運行也會提高系統的耗電量,導致手機卡頓、電池續航下降。沒錯,如果你是用的Windows系統,確實是這樣的,設備進程越多,內存占用越多,後台程序一直運行,反復讀寫,也就越耗電。
但是,這是iOS系統。
後台程序運行的原理可跟Windows不一樣。
iOS的優勢——應用後台掛起不占CPU
在蘋果的 iOS 系統中,軟件的運行狀態大概分為三種:分別是當前運行、後台掛起和後台刷新。
當用戶打開某個軟件時,這個軟件就是當前運行狀態,這個很容易理解:當用戶按下 Home 鍵或者切換到另外一個軟件時,先前運行的軟件就會處於掛起狀態(音樂播放類軟件除外),軟件處於掛起狀態時占用的資源非常少,同時也是被“凍結”狀態,不會在後台進行讀寫操作。當系統內存不足時,iOS 系統會自動將暫停時間比較長的軟件徹底關閉,將其占用的資源分配給當前運行狀態的軟件。
iOS 系統軟件的第三種運行狀態是後台刷新,就是軟件進入多任務後台之後自動刷新內容,也就是常說的「真後台」,現在的 iOS 系統已經可以支持軟件在後台運行。進入設置-通用-後台應用刷新,打開應用刷新的開關,軟件才會在後台運行。
iOS的後台任務,除了極少數可以後台運行之外(比如音樂播放),絕大多數在後台都是掛起的。iOS沒有為IPA准備虛擬內存。如果前台軟件內存不夠用,iOS會直接釋放後台軟件所占用的內存,並不會像Windows那樣用硬盤虛擬內存(引起耗電增加)。
而釋放一塊內存很簡單,就是把內存塊的某個標志由“占用”改為“空閒”即可,內存的內容直接廢棄丟掉,不用交換到閃存,速度很快,所以可見,我們使用Windows的經驗不適用於iOS。
其實蘋果IOS多任務設計的目的,是讓你忘掉多任務的存在,像IOS 3.x的單任務一樣使用多任務,想運行哪個軟件就運行它,不想運行就直接按HOME,無論後台開多少個軟件,都不會拖慢前台軟件(這本來嘛,後台都掛起狀態不占CPU)。這一點對windows來說是難以想象的,但蘋果的確是做到了。
注意——頻繁關閉後台程序有害無益
當用戶每一次將軟件關閉,就會讓本來不需要重新載入的軟件,被動的重新載入一次,在軟件重新啟動時,往往要消耗手機更多的電力,此前曾有蘋果員工表示,當用戶關閉軟件時,會感覺軟件占用的系統資源被釋放,達到了自己想要的效果,實際上,這樣反而會讓手機更加耗電。頻繁關閉後台會讓軟件不斷的關閉、載入,反反復復的過程會消耗更多的電量。
所以,蘋果iOS系統頻繁的關閉後台程序並不能省電,在我們認為後台程序"運行"會費電的時候,蘋果的工程師早已解決了這個問題。在一定程度上,iOS系統比我們想象中的更聰明。所以在日常使用中不要再頻繁的關閉後台了:
“一個完全暫停的後台任務如果還能讓它繼續跑電做無用功,你也太小看蘋果的系統設計師了。”