手機(jī)
手機(jī) 手機(jī)資訊 手機(jī)應(yīng)用資訊 手機(jī)軟件教程 教程:如何管理Android手機(jī)的剩余內(nèi)存
安卓
08月 23

教程:如何管理Android手機(jī)的剩余內(nèi)存

編輯:佚名 來(lái)源:軟吧
放大 縮小 打印 郵件 收藏本頁(yè) 游吧論壇

使用安卓手機(jī)的用戶可能都安裝了任務(wù)管理的軟件,使用Android手機(jī)真的有必要安裝結(jié)束任務(wù)的軟件嗎?大家在使用中也都發(fā)現(xiàn)了,很多軟件在被結(jié)束后,馬上就會(huì)又出現(xiàn)在任務(wù)列表里,或是稍等一會(huì)自己也會(huì)出現(xiàn),任務(wù)管理不停的結(jié)束后臺(tái)程序,也沒(méi)見(jiàn)給手機(jī)的運(yùn)行速度帶來(lái)多少提升,這是為什么呢?

其實(shí)大家不用那么在意Android手機(jī)剩余內(nèi)存的大小。很多人都是把使用其他系統(tǒng)的習(xí)慣帶到了Android手機(jī)上,不是所有的智能手機(jī)系統(tǒng)都一樣的。Android大多數(shù)應(yīng)用沒(méi)有退出的設(shè)計(jì)其實(shí)是有道理的,這和系統(tǒng)對(duì)進(jìn)程的調(diào)度機(jī)制有關(guān)系。如果你知道java,就能更清楚這機(jī)制了。其實(shí)和java的垃圾回收機(jī)制類似,系統(tǒng)有一個(gè)規(guī)則來(lái)回收內(nèi)存。進(jìn)行內(nèi)存調(diào)度有個(gè)閥值,只有低于這個(gè)值系統(tǒng)才會(huì)按一個(gè)列表來(lái)關(guān)閉用戶不需要的東西。當(dāng)然這個(gè)值默認(rèn)設(shè)置得很小,所以你會(huì)看到內(nèi)存老在很少的數(shù)值徘徊。但事實(shí)上他并不影響速度。相反加快了下次啟動(dòng)應(yīng)用的速度。這本來(lái)也是Android的優(yōu)勢(shì)之一,如果人為去關(guān)閉進(jìn)程,沒(méi)有太大必要。特別是自動(dòng)關(guān)進(jìn)程的軟件。

可能有人會(huì)說(shuō)了,那為什么內(nèi)存少的時(shí)候運(yùn)行大型程序會(huì)慢呢?其實(shí)很簡(jiǎn)單,在內(nèi)存剩余不多時(shí)打開(kāi)大型程序,會(huì)觸發(fā)系統(tǒng)自身的調(diào)進(jìn)程調(diào)度策略,這是十分消耗系統(tǒng)資源的操作,特別是在一個(gè)程序頻繁向系統(tǒng)申請(qǐng)內(nèi)存的時(shí)候。這種情況下系統(tǒng)并不會(huì)關(guān)閉所有打開(kāi)的進(jìn)程,而是選擇性關(guān)閉,頻繁的調(diào)度自然會(huì)拖慢系統(tǒng)。

那么,進(jìn)程管理軟件到底還有存在的價(jià)值嗎?其實(shí)還是有的,在運(yùn)行大型程序之前,你可以手動(dòng)關(guān)閉一些進(jìn)程釋放內(nèi)存,可以顯著的提高運(yùn)行速度。但一些小程序,完全可交由系統(tǒng)自己管理。很多朋友還有個(gè)疑問(wèn),如果不關(guān)程序是不是會(huì)更耗電?這里也解釋一下,Android的應(yīng)用在被切換到后臺(tái)時(shí),它其實(shí)已經(jīng)被暫停了,并不會(huì)消耗cpu資源,只保留了運(yùn)行狀態(tài)。所以為什么有的程序切出去重新進(jìn)入,還會(huì)到主界面。但是,一個(gè)程序如果想要在后臺(tái)處理些東西,如音樂(lè)播放,它就會(huì)開(kāi)啟一個(gè)服務(wù),服務(wù)可在后臺(tái)持續(xù)運(yùn)行,所以在后臺(tái)耗電的也只有帶服務(wù)的應(yīng)用了。這個(gè)在進(jìn)程管理軟件里能看到,名字是service。所以沒(méi)有帶服務(wù)的應(yīng)用在后臺(tái)是完全不耗電的,沒(méi)有必要關(guān)閉。這種設(shè)計(jì)本來(lái)就是一個(gè)非常好的設(shè)計(jì),下次啟動(dòng)程序時(shí),會(huì)更快,因?yàn)椴恍枰x取界面資源,何必要關(guān)掉他們抹殺這個(gè)Android的優(yōu)點(diǎn)呢?

還有一點(diǎn),為什么Android應(yīng)用看起來(lái)那么耗內(nèi)存?大家知道,Android上的應(yīng)用是java,當(dāng)然需要虛擬機(jī),而Android上的應(yīng)用是帶有獨(dú)立虛擬機(jī)的,也就是每開(kāi)一個(gè)應(yīng)用就會(huì)打開(kāi)一個(gè)獨(dú)立的虛擬機(jī)。這樣設(shè)計(jì)的原因是可以避免虛擬機(jī)崩潰導(dǎo)致整個(gè)系統(tǒng)崩潰,但代價(jià)就是需要更多內(nèi)存。

至于為什么開(kāi)了大程序或者開(kāi)了好幾個(gè)程序之后切換會(huì)變慢,具體分析如下:

已經(jīng)開(kāi)啟了一個(gè)大程序,占用70%內(nèi)存,如果再想運(yùn)行一個(gè)程序,此時(shí)還需要50%的內(nèi)存,則就需要一個(gè)從大程序占用的內(nèi)存中釋放或者壓縮的過(guò)程,所以表現(xiàn)出來(lái)的就是慢一會(huì)兒。

已經(jīng)開(kāi)啟了幾個(gè)程序共占用內(nèi)存80%,運(yùn)行新程序時(shí)又需要20%的內(nèi)存,系統(tǒng)內(nèi)存因?yàn)闆](méi)見(jiàn)過(guò)剩余0的時(shí)候,也就是應(yīng)該剩一部分空閑內(nèi)存,那么就需要從之前開(kāi)啟的這幾個(gè)程序中選擇一個(gè)或者幾個(gè)來(lái)關(guān)閉,這一過(guò)程也需要耗費(fèi)系統(tǒng)資源,所以會(huì)慢一會(huì)兒。也就是說(shuō)你手動(dòng)去結(jié)束程序的時(shí)候,就是替系統(tǒng)在釋放內(nèi)存,就算你不去結(jié)束,在需要內(nèi)存的時(shí)候系統(tǒng)也會(huì)自動(dòng)結(jié)束程序釋放內(nèi)存。

不在后臺(tái)運(yùn)行的程序(沒(méi)服務(wù)的),即使不結(jié)束也不會(huì)耗電。在后臺(tái)運(yùn)行的(有服務(wù)的)程序,如一些播放器或?qū)崟r(shí)監(jiān)控的軟件,自然會(huì)耗電。這就說(shuō)明結(jié)束進(jìn)程并不是沒(méi)用,我們只需要看哪個(gè)帶服務(wù)耗電哪個(gè)程序后臺(tái)一直在運(yùn)行,看服務(wù)就能看出來(lái),這樣的軟件如果用不到的時(shí)候就結(jié)束了吧。

QQ舉例,正常的退出,會(huì)在進(jìn)程管理里留下QQ的運(yùn)行過(guò)的狀態(tài),但不耗電不占 cpu,如果你只是切換出去(按房子鍵而不是退出)那么自然會(huì)耗電,因?yàn)槌绦蜻€在運(yùn)行,QQ還在線呢。

這里就有個(gè)要注意的地方了,雖然房子鍵和那個(gè)返回鍵都可以將程序切換出去,但是兩者的效果差異是很大的,返回鍵可以視作程序已經(jīng)退出了,而按房子鍵,則是將程序切換到了后臺(tái)來(lái)運(yùn)行,軟件并沒(méi)有退出哦!

以上這些設(shè)計(jì)都是為了確保了Android的穩(wěn)定性,正常情況下最多單個(gè)程序崩潰,但整個(gè)系統(tǒng)不會(huì)崩潰,也永遠(yuǎn)沒(méi)有內(nèi)存不足的提示出現(xiàn)。大家可能是被Windows毒害得太深了,總想保留更多的內(nèi)存,但實(shí)際上這并不一定會(huì)提升速度,相反卻喪失了程序啟動(dòng)快的這一系統(tǒng)特色,得不償失。大家不妨換種觀念習(xí)慣來(lái)使用Android系統(tǒng)。

打印 郵件 收藏本頁(yè) 幫肋
推薦閱讀
相關(guān)閱讀