就智能手機而言,處理器和內存總是相輔相成的兩個硬件。在10nm工藝的驍龍835、麒麟970和Helio X30處理器即將量產的情況下,內存自然也需要再進一步才能迎合“自家兄弟”的需求。于是,8GB手機內存開始量產。那么,對Android手機而言,8GB內存能否徹底解決可能出現的卡頓現象昵?
2007年,蘋果iPhone重新定義了智能手機,內置的128MB內存則是其流暢運行的基石。隨后,谷歌發布了Android系統,全球首款基于該系統定制的HTC G1則為其準備了192MB內存(圖1)。iPhone 1和HTC G1內存相差64MB,容量差異談不上大。
然而,iOS和Android系統不同的內存管理機制,卻讓兩個陣營的智能手機在內存上逐漸拉開了距離。當iPhone 5用上1GB內存時,Android手機已經擁有了2GB內存;當iPhone 6s好不容易升級到2GB內存時(圖2),Android手機卻已武裝上74GB甚至6GB內存;當下一代iPhone還沒影的時候,8GB內存的Android手機就已箭在弦上。
就內存容量的升級趨勢來看,Android陣營完全屬于“大躍進”風格,而之所以內存容量能保持如此高速的發展,則要歸功于兩個因素。
Android手機內存容量從1GB跨越到6GB只用了3年時間,其中從3GB提升到4GB時遇到了一道門檻。在ARM推出Cortex-A53和Cortex-A57架構以前(圖3),Android手機所搭載的處理器(SoC)還停留在32位時代,3GB就是極限。在iPhone 5s攜A7將智能手機領入64位時代后,Android手機陣營借助64位處理器和最新版本的Android 5.0系統,4GB內存手機才破繭而出,并一路狂奔到今天的6GB。
除了64位處理器和Android系統的幫忙,內存的生產工藝和封裝技術,也是讓內存容量在短時間里得以翻番的源動力。
智能手機的內存空間可用“寸土寸金”來形容,其緊湊的PCB布局最多只能允許安裝一顆內存芯片(圖4)。所以,如何提升單內存芯片的容量就成為了解決問題的關鍵所在(圖5)。以三星為例,它最早就通過20nm工藝生產出了8Gb(1GB)容量的LPDDR4顆粒,然后通過立體封裝技術,由4個顆粒封裝成為了單4GB內存芯片。隨后,三星又在20nm工藝的基礎上研發出了12Gb(1.5GB)容量的LPDDR4內存顆粒,4個顆粒封裝造就了6GB內存手機。

2016年10月,三星借助最新的10nm工藝推出了16Gb(2GB)容量的LPDDR4內存顆粒,運行速度高達4266MHz,為8GB內存手機的出現鋪平了道路(圖6)。全新的10nm 8GBLPDDR4內存芯片的封裝尺寸只有15mm×15mm×1.0mm,還能和處理器或UFS芯片封裝堆疊在一起,可進一步節省手機內存的空間占用。
隨后,SK海力士也發布了8GB手機內存,利用21nm工藝就實現了16Gb(2GB)容量LPDDR4內存顆粒的研發,4個顆粒也能封裝成為單8GB內存芯片。由于生產工藝的制約,海力士的8GB內存運行速度只有3733MHz,電氣性能稍遜一籌。
想用上最新的8GB內存,自然需要全新的處理器和系統平臺加以支持(需支持8GB的內存尋址)。好消息是,除了驍龍835、麒麟970和Helio X30這些還沒能量產的10nm旗艦級處理器外,像驍龍821和驍龍653等現有處理器也已經加入了對8GB內存的支持,所以8GB內存手機的上市時間應該比我們預計的還要早。
接下來又到了老生常談的時間了。當年2GB變3GB時、3GB變4GB時、4GB變6GB時都經歷過類似的討論:更大的內存到底是噱頭還是真有必要?
我們先來看看時下熱門APP對內存的實際需求(圖7、圖8)。沒想到吧?很多主流APP的高峰內存使用量就超過了500MB大關,這意味2GB內存只能同時開4個,3GB內存為6個,6GB內存為12個,哪怕8GB內存也只能同時跑16個?從這個角度來看,內存自然是越大越好,別說8GB了,哪怕是12GB、16GB也不嫌多!
問題來了,現在絕大多數Android手機內存還停留在3GB或4GB階段,為什么這些手機仍然能在后臺同時跑數十個程序時還依舊流暢呢?
原因很簡單,Android系統自身就帶有一套相對成熟的內存調度機制,我們可以將其理解為“末位淘汰”。Android系統會將所有系統級APP(如輸入法、電話服務)和第三方APP(如微信、游戲)進行優先級排序,當剩余內存不足以滿足當前啟動程序的運行要求時,系統便會自動關閉優先級靠后的那些APP和相關進程(圖9)。此外,很多APP轉入后臺時,會進入類似休眠的狀態,此時對內存的消耗量變得更低,直到被前臺喚醒之后才開始壓榨內存。
舉個例子,假設你的手機正同時運行著微信、QQ、美團、天貓、京東和今日頭條時的內存占用率為80%。此時你想玩《陰陽師》,當你點擊該游戲圖標的一瞬間,系統就會自動判斷運行《陰陽師》需要的內存資源。比如該游戲需要30%的內存,根據“末位淘汰”機制,像美團、天貓這幾個非即時通訊的APP就會自動被關閉,然后才會正式啟動《陰陽師》這款游戲。
因此,當我們退出某款游戲后,按Home切換到后臺運行程序,有時會還原到之前窗口狀態,但有時該程序則需要重新加載才能啟動。而后面的情況,就是系統為了保證這款游戲運行,自動關閉了后臺運行的這個程序,將釋放的內存用于游戲的啟動上了。
除了Android官方的內存調度機制,不少手機廠商也在系統層面加入了更合理的程序管理功能。比如所謂的“純凈后臺”“息屏清理”等功能(圖10),就是當手機進入待機狀態后,自動清理非白名單以外的所有程序,始終讓內存保持在一個穩定的容量上,以備不時之需。
理論上講,有了Android和廠商的兩道“保險”,2GB內存可能有點懸,但3GB內存的手機怎么著也不應該因運行多個APP而變卡了。但實際情況卻是,哪怕是4GB甚至6GB內存的手機,有時都會出現突然變卡的現象,這又是怎么回事呢?
就Android手機即將迎來8GB內存,很多網友都發表了調侃的評論:
網友A:程序員表示,終于不用加班優化APP啦!
網友B:APP表示,終于想怎么駐留內存就怎么駐留內存,想開幾個后臺就開幾個,看誰還好意思殺我!
網友C:然而一開機剩余可用依然是1.5GB。
網友D:Android廣告分分鐘填滿8GB內存!
雖然簡短,但都很精辟。實際上,真正導致Android系統變卡變慢的原因,還是體現在目前的APP應用環境,以及用戶的使用習慣這兩個方面。
APP應用環境背“大鍋”
由于國內的Android手機沒有統一的應用發布平臺(Google Play國內無法用),而第三方應用商店往往和APP開發者達成了默契,所以任何一款APP都能捆綁各種廣告,推送各種服務,最終造成了“全家桶”現象。
比如我們剛剛打開一個APP,后臺就會自動觸發與其相關的“全家桶套餐”,原本300MB內存就能解決的事,一下子就變成了800MB甚至1GB,手機內存再大也非常容易被這種機制堆滿(圖11)。當我們發現手機切換界面變卡、接電話變卡、解鎖變卡,連看個照片都得等好一段時間時,往往就是同時觸發了多款極為消耗內存的APP,并超過了系統內存調度機制的管理極限。
正所謂“內存多大產,人有多大膽”。手機敢上更大的內存,APP開發者就敢玩更高端的廣告推送,而各種喚醒開發者也無需考慮深度優化了。
個人使用習慣背“小鍋”
針對APP間相互喚醒和全家桶問題,很多手機廠商都在系統中加入了相關的管理功能(圖12)。但是,這類功能并非所有用戶都知道,或者都會用。
一款4GB內存的手機有人用起來很順手(不會卡),但一款6GB內存的手機在有些人用起來都會卡到無語(比如從來都是通過Home鍵“退出”程序,允許所有APP發送通知還從不清理)。
所以說,內存夠不夠用,和用戶的玩機水平有一定關系。對普通用戶而言,更大的內存則可以減少卡頓出現的幾率。從這個角度來看,更大內存還是有意義的。總之,在國內Android系統沒有統一完善的APP下載渠道(圖13),沒有嚴格針對流氓APP的審核和下架制度,任手機內存再大也存在卡頓的隱患。
看起來很悲劇?沒辦法,這就是事實。
對懂得合理利用內存優化管理機制的玩家而言,在預算有限的前提下內存是夠用就好,8GB并非“剛需”。但是,對2017年的高端Android手機而言,8GB內存用戶可以用不上,但作為新品卻絕不能沒有。所以你會發現,8GB內存從出現到普及的速度會變得更快,半年之后,2000元-2500元價位的8GB內存手機將一抓一大把。
所以,我們無需有任何心理負擔。更大的內存是智能手機發展的必然趨勢,而隨著10nm工藝的成熟,8GB內存成本略高的問題也將得到緩解。讓咱們一起歡慶手機進入8GB內存時代吧,也許更大的內存對你沒用,但至少可以讓更多人無需懂得優化手機系統的方法和原理,也能用起來更流暢和順手。