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