內存越大Android卡頓的幾率越小?

步入2014年之後,新款Android手機要是沒有配備3GB內存都不好意思叫「旗艦」。因此,很多消費者也習慣通過內存大小來判斷某款手機的性能。比如,配2GB內存手機的性能就一定就比1GB內存手機強,運行也就更流暢、不易出現卡頓。那麼,事實果真如此嗎?

了解Android內存的機制

「一款配2GB內存的Android手機,當2GB內存完全佔用之後就會卡死」,這是很多Android手機用戶的潛在認知。於是,很多用戶總認為需要不停的優化內存才不會卡頓。實際上,這個觀點理論上並不成立。

Android系統自身有一套成熟的內存管理機制,我們可以將其理解為「末位淘汰」。簡單來說,Android系統會將所有系統級APP(如時間、系統輸入法)和第三方APP(如微信、遊戲)進行優先順序排序,當剩餘內存不足以滿足當前啟動程序的運行要求時,系統便會自動關閉優先順序靠後的那些APP和相關進程。

利用一些第三方優化軟體提供的「一鍵清理」(圖6),雖然可直接清空所有駐留後台的程序,但這樣做會造成無法再接收聊天消息,並導致程序二次啟動的時間延長。在「末位淘汰」機制下有些得不償失。

圖6 :很多手機或軟體都提供了一鍵清理內存的小插件,並可自定義白名單

無需用戶干預的「末位淘汰」

舉個例子,你的手機正同時運行著微信、微博、QQ、美團、淘寶、京東、天氣這7個APP,此時內存佔用率為80%。當你想玩「真實賽車3」遊戲時,在你點擊該遊戲圖標的一瞬間,系統就會自動判斷運行「真實賽車3」需要的內存資源。比如該遊戲需要60%的內存,根據「末位淘汰」機制,像美團、淘寶、京東、天氣這幾個非即時通訊的APP就會自動被關閉,然後才會正式啟動「真實賽車3」這款遊戲。

因此,當我們退出某款遊戲后,按Home切換到後台運行程序時(圖7),有時會還原到之前窗口狀態,但有時該程序則會重新啟動。而後面的情況,就是系統為了保證這款遊戲運行,自動關閉了後台運行的這個程序,將釋放的內存用於遊戲的啟動上了。

圖7:Android通過長按Home鍵可以在後台程序間切換

換句話說,Android手機理論上是不存在「內存用完」的狀況的,因為Android內存管理機制總會通過自動關閉後台的末位進程,來確保手機總有足夠的內存去滿足新啟動程序的運行需求。更大的內存可以減少程序打開時等待的時間,提高程序間切換的效率,但對改善遊戲或程序運行的流暢度意義不大。那麼,Android手機在運行過程中的卡頓甚至卡死狀態到底源於何處呢?

小提示

筆者著重介紹了Android內存管理機制,並非否定內存容量的重要性。由於Android手機的SoC(處理器)集成的GPU並沒有獨立顯存,所以需要藉由一定容量的內存用於虛擬GPU顯存。所以,除了系統本身和APP以外,手機解析度越高,對內存的依賴也就越大。因此,對1080P/2K手機而言,2GB/3GB內存還是很有必要的(圖8)。而更大的內存意味著手機有更多的冗餘,去滿足同時運行更多APP的條件。

圖8 :標配2K屏幕與3GB內存的三星Note 4

Android為什麼會卡頓

在絕大多數情況下,Android手機的卡頓是和內存無關的。而卡頓現象的產生,則主要體現在「先天」與「後天」方面。

「先天」的卡頓

所謂「先天」,就是源於硬體端性能不夠給力造成的。先給大家普及一個技術原理:1080P屏幕(1920×1080像素)擁有207萬個像素點。理論上,每100萬像素需要4GB/S的內存帶寬(和內存容量無關,取決於處理器所支持的內存帶寬參數)才可確保100%流暢。按照這個標準,唯有驍龍800級別的處理器(內存帶寬為12.8GB/S)才可完美驅動1080P屏幕。很多搭載聯發科MT6592八核處理器(內存帶寬為5.3GB/S)的手機雖也配備了1080P屏幕,但由於它僅能給每100萬像素分配2.56GB/S的帶寬,自然怎麼優化都會略有卡頓感,哪怕你給它武裝4GB內存也無法彌補源於處理器的先天缺陷。

同理,2K屏幕(2560×1440像素)的像素點達到了384萬,現階段只有高通驍龍801(14.9GB/S)的內存帶寬才可將將滿足流暢驅動的標準(圖9)。

圖9 :藉助Adreno 330 GPU,讓高通驍龍801成為了目前少有可驅動2K屏幕的處理器

「後天」的卡頓

所謂「後天」,主要體現在系統端和第三方APP端的優化與設置上。換句話說,「後天」就是「人禍」。Android手機在使用上的卡頓則體現在兩個環節:啟動器(Launcher)與程序自身(APP)。

啟動器:

小米的MIUI、魅族的FlymeOS、OPPO的Color OS、酷派的CoollifeUI,這些「由Android系統深入定製的OS」,其實都算是「第三方啟動器」(圖10)。本來,Android在步入4.2版本之後,通過「動畫過渡」和「黃油計劃」,其原生啟動器在流暢度上足以比肩iOS了。可惜,很多第三方啟動器只顧華麗的界面和特效,最終導致了流暢度的不足,至少筆者還沒遇到任何一款第三方啟動器在流暢性上能超越原生啟動器。

圖10:如果你覺得手機系統不流暢,可以考慮安裝第三方啟動器,比如口碑最好的Apex Launcher

程序自身:

Android系統本來捆綁著日曆、郵箱、地圖、商店等APP,但手機廠商往往喜歡將它們「閹割」,用自主或第三方開發的類似APP替換(圖11)。那麼,你覺得這些替換的APP能有原生的APP優秀嗎?

圖11 :各種第三方軟體替換了原生APP

谷歌在Android4.x時代推出了Holo規範,由此規範開發的APP可享受GPU加速等一系列特性,獲得更佳的流暢度並降低CPU佔用率。可惜,Holo規範並非強制標準,很多開發者為了確保與Android2.x設備的兼容性,依舊沿用了Java開發規範。Java開發的APP在Android4.x流暢度受限,而Holo在Android2.x中也普遍遭遇卡頓崩潰現象,這種因開發規範引起的卡頓,也是值得引起我們關注的。

最後就是一些「潛規則」引起的問題了。為了盈利,很多APP都開放了各種推送服務,哪怕你已經關閉了某個軟體,但它依舊會在後台留有進程並自己搭建推送服務,成為佔用系統資源,耗費無辜電量的「蛀蟲」。

小提示

無論是高通、聯發科、三星還是海思,這些Android手機常用的處理器都具備自我保護功能。當手機持續玩遊戲導致晶元溫度過高時,會通過自動降頻的方式自我降溫。所以,Android在持續玩遊戲時經常遭遇「越用越慢」的現象(圖12),其實這可能就是處理器降頻后引起的卡頓,也是正常現象。

圖12:發熱降頻是導致手機突然卡頓或卡死的重要原因

小結

很多Android手機用戶總會將卡頓或卡死問題歸結於內存,而本章節的目的就是想讓大家別再「誤會」內存了。Android的卡頓現象,更多的時候還是源於系統本身的優化,以及各種垃圾APP和服務對系統資源的侵蝕。想徹底告別卡頓,挑選高端的處理器平台(如驍龍801)與合理解析度屏幕的組合遠比追求大內存更有意義,而對內存大於2GB的手機而言,更是沒必要不停的優化內存。

你可能會喜歡