我知道,對(duì)于很多人而言,尤其是那些有強(qiáng)迫癥者,這是個(gè)然并卵的命題,但是在我們周圍,還有很多這樣的智能手機(jī)用戶:怎么這個(gè)手機(jī)3G內(nèi)存,空閑的也只有600MB呢?以前那個(gè)2G內(nèi)存的手機(jī)都有800MB的空閑,我要一鍵清理內(nèi)存,我要定時(shí)清理內(nèi)存…… 清理與加速,是手機(jī)助手們吹噓的主要功能 像我們這些在Windows陪伴下成長起來的玩家,“內(nèi)存不足”是留存在心底揮之不去的陰影,即便到了今天,到了Android系統(tǒng),這個(gè)陰影依舊。實(shí)際上Android有著與Windows完全不一樣的內(nèi)存管理機(jī)制,Windows上的那一套,在這兒并不是行之有效的。 Android中可用內(nèi)存只是個(gè)沒意義的數(shù)字 在Windows中,可用內(nèi)存是越多越好,但在Android中,完全不必在意這個(gè)數(shù)據(jù)。在下圖中,有著3GB內(nèi)存的某手機(jī),實(shí)際可用內(nèi)存只有81MB了,你可千萬別說這個(gè)系統(tǒng)好垃圾,只能顯得自己的無知。 一加手機(jī)X的內(nèi)存使用狀況(內(nèi)存3GB可用的只有81MB了) Windows中只有需要用到內(nèi)存時(shí)才會(huì)為程序分配內(nèi)存,一旦這個(gè)程序被關(guān)閉,分配的內(nèi)存也就釋放出來成為新的可用內(nèi)存。然而絕大多數(shù)Android應(yīng)用都沒有退出的菜單設(shè)計(jì),這些運(yùn)行過的應(yīng)用無非是從前臺(tái)轉(zhuǎn)入到后臺(tái),大多數(shù)依舊保留在內(nèi)存中并不會(huì)也不需要主動(dòng)釋放,這樣下次再運(yùn)行該應(yīng)用時(shí),可以更快的啟動(dòng)。 無論手機(jī)的物理內(nèi)存有多大,Android都能將其充分利用,將需要用到(包括之前用過的)的數(shù)據(jù)從硬盤讀入到內(nèi)存,利用內(nèi)存的高速保證系統(tǒng)的數(shù)據(jù)訪問性能,也就是說,可用內(nèi)存越小,內(nèi)存的利用率就更高,其中的數(shù)據(jù)就越多,數(shù)據(jù)訪問的命中率就越高,系統(tǒng)也就越快。如果還有人和你說手機(jī)用不了4GB這么的大內(nèi)存,那只是廠商的噱頭而已,你完全可以鄙視再教育之。 你可能會(huì)問,當(dāng)打開的應(yīng)用越來越多,占用的內(nèi)存總會(huì)爆滿的,那怎么辦呢? 該出手時(shí)就出手,Android有著優(yōu)秀的內(nèi)存回收機(jī)制 在上面舉例中,3GB內(nèi)存的手機(jī)只有81MB的可用內(nèi)存了,如果此時(shí)打開需要256MB內(nèi)存的“騰訊視頻”,會(huì)提示“內(nèi)存不足”嗎?答案是不會(huì)的。 當(dāng)內(nèi)存不足時(shí),內(nèi)存回收機(jī)制就開始起作用了 實(shí)際上,作為Android的開發(fā)語言Java沒有提供任何操作來釋放內(nèi)存(這也是與iOS很大的不同點(diǎn)),是通過系統(tǒng)的內(nèi)存回收機(jī)制來進(jìn)行管理。Android使用了一個(gè)名為Low Memory Killer(LMK)的機(jī)制來管理內(nèi)存,當(dāng)內(nèi)存出現(xiàn)不足時(shí),LMK就開始揮舞屠刀殺掉一些進(jìn)程,那么問題來了,殺誰? 說到這兒,必須多費(fèi)點(diǎn)筆墨。Android會(huì)對(duì)進(jìn)程的重要性進(jìn)行評(píng)估,以oom_adj來表示,oom_adj的值越小,則重要性越高,oom_adj的值越大,該進(jìn)程被系統(tǒng)選中殺掉的可能性越高,當(dāng)oom_adj值為0,這意味著它永遠(yuǎn)不會(huì)被系統(tǒng)終止。 Android有一套自己獨(dú)特的進(jìn)程管理,比如可以設(shè)定“當(dāng)內(nèi)存小于22M時(shí),結(jié)束oom_adj大于14的進(jìn)程”這樣的策略,可以看到oom_adj非常重要,關(guān)乎進(jìn)程的死生命運(yùn)。 Android默認(rèn)的進(jìn)程管理策略 像上表描述的那樣,在默認(rèn)策略中,當(dāng)內(nèi)存低于24MB(6144*4K)時(shí),LMK就會(huì)殺掉所有oom_adj為15的進(jìn)程(即空進(jìn)程),這個(gè)警戒值可以人為修改,一般情況下也沒必要去改變它。為了更好的評(píng)估進(jìn)程的重要性,Android將進(jìn)程分為六類,如下所述: 前臺(tái)進(jìn)程(foreground):oom_adj=0,指正在當(dāng)前屏幕上顯示的進(jìn)程和一些系統(tǒng)進(jìn)程,一旦你回到主界面 或切換到其它程序,當(dāng)前進(jìn)程變?yōu)殡[藏進(jìn)程,前臺(tái)進(jìn)程是不會(huì)殺掉的; 可見進(jìn)程(visible):oom_adj=1,可見進(jìn)程雖然不在前臺(tái),但依然可見,如widget、輸入法等,這部分進(jìn)程也非常重要,基本上不可能被殺掉; 次要服務(wù)(secondary server):oom_adj=2,目前正在運(yùn)行的一些服務(wù),如下載、播放音樂,它們雖然屬于次要服務(wù),但與系統(tǒng)息息相關(guān),一般也不會(huì)被殺掉; 隱藏進(jìn)程(hidden):oom_adj=7,這個(gè)很容易理解,當(dāng)應(yīng)用從前臺(tái)轉(zhuǎn)入到后臺(tái)后,也就成為隱藏進(jìn)程了,通常一鍵清理內(nèi)存就是清掉這些隱藏進(jìn)程; 內(nèi)容提供者(content provider):oom_adj=14,沒有程序?qū)嶓w,只提供內(nèi)容供別的程序去用的,比如日歷供應(yīng)節(jié)點(diǎn),顯然這類進(jìn)程最有可能被先殺掉; 空進(jìn)程(empty):oom_adj=15,有些程序在程序退出后,依然會(huì)在進(jìn)程中駐留一個(gè)空進(jìn)程,這個(gè)進(jìn)程里沒有任何數(shù)據(jù)在運(yùn)行,作用往往是提高該程序下次的啟動(dòng)速度或者記錄程序的一些歷史信息,這類進(jìn)程無疑是要最先被殺掉的。 Android的內(nèi)存管理機(jī)制非常適合嵌入式系統(tǒng),能充分發(fā)揮出硬件的潛力,當(dāng)內(nèi)存越大,它的優(yōu)勢就越明顯。 Android手機(jī)需要清內(nèi)存嗎?需要嗎? 回到要討論的話題,Android手機(jī)需要清內(nèi)存嗎?需要嗎?需要嗎?需要嗎?結(jié)論是再明顯不過:不需要!其實(shí)這個(gè)結(jié)論也適用iPhone手機(jī),iOS在內(nèi)存管理方面更為激進(jìn)。 我們完全不用糾結(jié)Android手機(jī)上的可用內(nèi)存大小,也不需要去一鍵清理內(nèi)存,有時(shí)可能還會(huì)適得其反,尤其是在手機(jī)內(nèi)存2GB起步3GB成主流的今天,我們會(huì)很享受Android的內(nèi)存管理機(jī)制。目前硬件規(guī)格的Android手機(jī)系統(tǒng)流暢度上都有著很好的表現(xiàn),基本上能與iOS叫板,在Android 5.1.1以上版本中如絲般順滑都是可以期待的,至于為什么會(huì)“越用越卡”,這個(gè)問題就有點(diǎn)復(fù)雜,下次再單獨(dú)發(fā)文討論討論。
|
專業(yè)解答:Android手機(jī)需要清內(nèi)存嗎?
2015-12-10 17:34
出處:其他
作者:超能網(wǎng)
責(zé)任編輯:lijunhai
熱度排行
評(píng)論排行
-
榮耀20 PRO深度評(píng)測:詮釋潮美,雙OIS加持F1.4光圈
1 -
決戰(zhàn)歐洲之巔:為了旗艦拍照橫評(píng),我們奔赴瑞士雪山
2 -
魅族 16Xs評(píng)測:三攝加極邊全面屏 165g完美均衡
3 -
成了!聯(lián)發(fā)科推出全球首顆集成5G基帶的5G芯片
4 -
新聞匯:多方狙擊華為 榮耀20 PRO DxO全球第二
5 -
高性能手機(jī)怎么選?標(biāo)配了驍龍855絕對(duì)適合你!
6 -
iOS 13系統(tǒng)截圖首次曝光,這些功能簡直夢(mèng)寐以求
7 -
OPPO Reno Z評(píng)測:自然配色 4800萬高清洞察世界
8 -
性能夠用還不貴,這些高性價(jià)比手機(jī)值得入手
9 -
谷歌良心發(fā)現(xiàn)?Mate 20 Pro重回Android Q名單中
10 -
榮耀20系列國內(nèi)發(fā)布倒計(jì)時(shí),九城爆燈齊賀榮耀!
11
IT百科
熱門專題
手機(jī)論壇帖子排行
最高點(diǎn)擊
最高回復(fù)
最新
-
824次
手機(jī)大廠的小心思:OPPO K3和Realme X搶市場?看完才知道自己太天真
1 -
257次
#Phone人院特約:一加7系列體驗(yàn)會(huì)# 回顧:從慢速到全速,一加7 Pro盡享馳騁
2 -
203次
Redmi K20 Pro被網(wǎng)友叫貴,雷軍心里有苦說不出
3 -
192次
首款硬件DC,前置廣角拍攝,Redmi K20還有哪些驚喜?
4 -
171次
2019什么藍(lán)牙耳機(jī)好?最具性價(jià)比的四大王牌耳機(jī)
5 -
170次
非隔離的智能插座電源方案芯片TB1211
6 -
168次
一加7系列線下活動(dòng)回顧——“功夫不負(fù)一加人”
7 -
160次
一加7系列線下活動(dòng)回顧——回憶往昔,再創(chuàng)佳績!
8 -
158次
更安全的艾灸方法,科技感十足!左點(diǎn)小艾第二代測評(píng)
9 -
151次
看過魅族16Xs,你才知道Redmi K20有多香,網(wǎng)友:全靠友商襯托
10
汽車資訊
最新資訊離線隨時(shí)看
聊天吐槽贏獎(jiǎng)品