當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]對(duì)于很多人而言,尤其是那些有強(qiáng)迫癥者,\"清內(nèi)存\"這是個(gè)然并卵的命題,但是在我們周?chē)?,還有很多這樣的智能手機(jī)用戶(hù):怎么這個(gè)手機(jī)3G內(nèi)存,空閑的也只有600MB呢?以前那個(gè)2G內(nèi)存的手機(jī)都有800MB的空閑,不行,我要一鍵清理內(nèi)存,我要定時(shí)清理內(nèi)存,我要加速,我要。。。對(duì)此,小編只能說(shuō):看下圖。

對(duì)于很多人而言,尤其是那些有強(qiáng)迫癥者,"清內(nèi)存"這是個(gè)然并卵的命題,但是在我們周?chē)€有很多這樣的智能手機(jī)用戶(hù):怎么這個(gè)手機(jī)3G內(nèi)存,空閑的也只有600MB呢?以前那個(gè)2G內(nèi)存的手機(jī)都有800MB的空閑,不行,我要一鍵清理內(nèi)存,我要定時(shí)清理內(nèi)存,我要加速,我要。。。對(duì)此,小編只能說(shuō):看下圖。

清理與加速,是手機(jī)助手們吹噓的主要功能

像我們這些在Windows陪伴下成長(zhǎng)起來(lái)的玩家,“內(nèi)存不足”是留存在心底揮之不去的陰影,即便到了今天,到了Android系統(tǒng),這個(gè)陰影依舊。實(shí)際上Android有著與Windows完全不一樣的內(nèi)存管理機(jī)制,Windows上的那一套,在這兒并不是行之有效的。

Android中可用內(nèi)存只是個(gè)沒(méi)意義的數(shù)字

在Windows中,可用內(nèi)存是越多越好,但在Android中,完全不必在意這個(gè)數(shù)據(jù)。在下圖中,有著3GB內(nèi)存的某手機(jī),實(shí)際可用內(nèi)存只有81MB了,你可千萬(wàn)別說(shuō)這個(gè)系統(tǒng)好垃圾,只能顯得自己的無(wú)知。

一加手機(jī)X的內(nèi)存使用狀況(內(nèi)存3GB可用的只有81MB了)

Windows 中只有需要用到內(nèi)存時(shí)才會(huì)為程序分配內(nèi)存,一旦這個(gè)程序被關(guān)閉,分配的內(nèi)存也就釋放出來(lái)成為新的可用內(nèi)存。然而絕大多數(shù)Android應(yīng)用都沒(méi)有退出的菜單設(shè)計(jì),這些運(yùn)行過(guò)的應(yīng)用無(wú)非是從前臺(tái)轉(zhuǎn)入到后臺(tái),大多數(shù)依舊保留在內(nèi)存中并不會(huì)也不需要主動(dòng)釋放,這樣下次再運(yùn)行該應(yīng)用時(shí),可以更快的啟動(dòng)。

無(wú)論手機(jī)的物理內(nèi)存有多大,Android都能將其充分利用,將需要用到(包括之前用過(guò)的)的數(shù)據(jù)從硬盤(pán)讀入到內(nèi)存,利用內(nèi)存的高速保證系統(tǒng)的數(shù)據(jù)訪(fǎng)問(wèn)性能,也就是說(shuō),可用內(nèi)存越小,內(nèi)存的利用率就更高,其中的數(shù)據(jù)就越多,數(shù)據(jù)訪(fǎng)問(wèn)的命中率就越高,系統(tǒng)也就越快。如果還有人和你說(shuō)手機(jī)用不了4GB這么的大內(nèi)存,那只是廠商的噱頭而已,你完全可以鄙視再教育之。

你可能會(huì)問(wèn),當(dāng)打開(kāi)的應(yīng)用越來(lái)越多,占用的內(nèi)存總會(huì)爆滿(mǎn)的,那怎么辦呢?

該出手時(shí)就出手,Android有著優(yōu)秀的內(nèi)存回收機(jī)制

在上面舉例中,3GB內(nèi)存的手機(jī)只有81MB的可用內(nèi)存了,如果此時(shí)打開(kāi)需要256MB內(nèi)存的“騰訊視頻”,會(huì)提示“內(nèi)存不足”嗎?答案是不會(huì)的。

當(dāng)內(nèi)存不足時(shí),內(nèi)存回收機(jī)制就開(kāi)始起作用了

實(shí)際上,作為Android的開(kāi)發(fā)語(yǔ)言Java沒(méi)有提供任何操作來(lái)釋放內(nèi)存(這也是與iOS很大的不同點(diǎn)),是通過(guò)系統(tǒng)的內(nèi)存回收機(jī)制來(lái)進(jìn)行管理。 Android使用了一個(gè)名為L(zhǎng)ow Memory Killer(LMK)的機(jī)制來(lái)管理內(nèi)存,當(dāng)內(nèi)存出現(xiàn)不足時(shí),LMK就開(kāi)始揮舞屠刀殺掉一些進(jìn)程,那么問(wèn)題來(lái)了,殺誰(shuí)?

說(shuō)到這兒,必須多費(fèi)點(diǎn)筆墨。Android會(huì)對(duì)進(jìn)程的重要性進(jìn)行評(píng)估,以oom_adj來(lái)表示,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è)警戒值可以人為修改,一般情況下也沒(méi)必要去改變它。為了更好的評(píng)估進(jìn)程的重要性,Android將進(jìn)程分為六類(lèi),如下所述:

前臺(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ì)殺掉的;

可見(jiàn)進(jìn)程(visible):oom_adj=1,可見(jiàn)進(jìn)程雖然不在前臺(tái),但依然可見(jiàn),如widget、輸入法等,這部分進(jìn)程也非常重要,基本上不可能被殺掉;

次要服務(wù)(secondary server):oom_adj=2,目前正在運(yùn)行的一些服務(wù),如下載、播放音樂(lè),它們雖然屬于次要服務(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,沒(méi)有程序?qū)嶓w,只提供內(nèi)容供別的程序去用的,比如日歷供應(yīng)節(jié)點(diǎn),顯然這類(lèi)進(jìn)程最有可能被先殺掉;

空進(jìn)程(empty):oom_adj=15,有些程序在程序退出后,依然會(huì)在進(jìn)程中駐留一個(gè)空進(jìn)程,這個(gè)進(jìn)程里沒(méi)有任何數(shù)據(jù)在運(yùn)行,作用往往是提高該程序下次的啟動(dòng)速度或者記錄程序的一些歷史信息,這類(lèi)進(jìn)程無(wú)疑是要最先被殺掉的。

Android的內(nèi)存管理機(jī)制非常適合嵌入式系統(tǒng),能充分發(fā)揮出硬件的潛力,當(dāng)內(nèi)存越大,它的優(yōu)勢(shì)就越明顯。

Android手機(jī)需要清內(nèi)存嗎?需要嗎?

回到要討論的話(huà)題,Android手機(jī)需要清內(nèi)存嗎?需要嗎?需要嗎?需要嗎?結(jié)論是再明顯不過(guò):不需要!其實(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è)問(wèn)題就有點(diǎn)復(fù)雜,下次再單獨(dú)發(fā)文討論討論。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉