1. 首頁
  2. 管理

如何高效率管理android的剩餘記憶體

如何高效率管理android的剩餘記憶體

其實大家不用那麼在意android手機剩餘記憶體的大小。很多人都是把使用其他系統的習慣帶到了android手機上,不是所有的智慧手機系統都一樣的。android大多數應用沒有退出的設計其實是有道理的,這和系統對程序的排程機制有關係。如果你知道java,就能更清楚這機制了。其實和java的垃圾回收機制類似,系統有一個規則來回收記憶體。進行記憶體排程有個閥值,只有低於這個值系統才會按一個列表來關閉使用者不需要的東西。當然這個值預設設定得很小,所以你會看到記憶體老在很少的數值徘徊。但事實上他並不影響速度。相反加快了下次啟動應用的速度。這本來也是android的優勢之一,如果人為去關閉程序,沒有太大必要。特別是自動關程序的軟體。

可能有人會說了,那為什麼記憶體少的時候執行大型程式會慢呢?其實很簡單,在記憶體剩餘不多時開啟大型程式,會觸發系統自身的調程序排程策略,這是十分消耗系統資源的操作,特別是在一個程式頻繁向系統申請記憶體的時候。這種情況下系統並不會關閉所有開啟的程序,而是選擇性關閉,頻繁的排程自然會拖慢系統。

那麼,程序管理軟體到底還有存在的價值嗎?其實還是有的,在執行大型程式之前,你可以手動關閉一些程序釋放記憶體,可以顯著的提高執行速度。但一些小程式,完全可交由系統自己管理。很多朋友還有個疑問,如果不關程式是不是會更耗電?這裡也解釋一下,android的應用在被切換到後臺時,它其實已經被暫停了,並不會消耗cpu資源,只保留了執行狀態。所以為什麼有的程式切出去重新進入,還會到主介面。但是,一個程式如果想要在後臺處理些東西,如音樂播放,它就會開啟一個服務,服務可在後臺持續執行,所以在後臺耗電的也只有帶服務的應用了。這個在程序管理軟體裡能看到,名字是service。所以沒有帶服務的應用在後臺是完全不耗電的,沒有必要關閉。這種設計本來就是一個非常好的設計,下次啟動程式時,會更快,因為不需要讀取介面資源,何必要關掉他們抹殺這個android的優點呢?

還有一點,為什麼android應用看起來那麼耗記憶體?大家知道,android上的應用是java,當然需要虛擬機器,而android上的.應用是帶有獨立虛擬機器的,也就是每開一個應用就會開啟一個獨立的虛擬機器。這樣設計的原因是可以避免虛擬機器崩潰導致整個系統崩潰,但代價就是需要更多記憶體。

至於為什麼開了大程式或者開了好幾個程式之後切換會變慢,具體分析如下:

已經開啟了一個大程式,佔用70%記憶體,如果再想執行一個程式,此時還需要50%的記憶體,則就需要一個從大程式佔用的記憶體中釋放或者壓縮的過程,所以表現出來的就是慢一會兒。

已經開啟了幾個程式共佔用記憶體80%,執行新程式時又需要20%的記憶體,系統記憶體因為沒見過剩餘0的時候,也就是應該剩一部分空閒記憶體,那麼就需要從之前開啟的這幾個程式中選擇一個或者幾個來關閉,這一過程也需要耗費系統資源,所以會慢一會兒。也就是說你手動去結束程式的時候,就是替系統在釋放記憶體,就算你不去結束,在需要記憶體的時候系統也會自動結束程式釋放記憶體。

不在後臺執行的程式(沒服務的),即使不結束也不會耗電。在後臺執行的(有服務的)程式,如一些播放器或實時監控的軟體,自然會耗電。這就說明結束程序並不是沒用,我們只需要看哪個帶服務耗電哪個程式後臺一直在執行,看服務就能看出來,這樣的軟體如果用不到的時候就結束了吧。

以QQ舉例,正常的退出,會在程序管理裡留下qq的執行過的狀態,但不耗電不佔 cpu,如果你只是切換出去(按房子鍵而不是退出)那麼自然會耗電,因為程式還在執行,QQ還線上呢。

這裡就有個要注意的地方了,雖然房子鍵和那個返回鍵都可以將程式切換出去,但是兩者的效果差異是很大的,返回鍵可以視作程式已經退出了,而按房子鍵,則是將程式切換到了後臺來執行,軟體並沒有退出哦!

以上這些設計都是為了確保了android的穩定性,正常情況下最多單個程式崩潰,但整個系統不會崩潰,也永遠沒有記憶體不足的提示出現。大家可能是被windows毒害得太深了,總想保留更多的記憶體,但實際上這並不一定會提升速度,相反卻喪失了程式啟動快的這一系統特色,得不償失。大家不妨換種觀念習慣來使用android系統。