想當年,清理內存的習慣由來已久。在Android還沒出生,我們使用Windows時,總巴不得把所有沒有用到的進程關掉,這樣才不會“占內存”,不會“占CPU”,電腦才不會“卡”。(大部分的“安全軟件”就是靠幫用戶在Windows上清內存,清垃圾而揚名)這算是清內存的歷史原因。然而Android跟Windows相比,其實是完全不同的內存管理機制。
研究背景:
Android基于Linux的內核,繼承并改進了Linux的內存管理機制。
Android的內存管理機制:
有多少內存就用多少,空閑內存全部當緩存。也就是,當一個進程停止活動,Windows會把它從內存中清除,但Android會把進程保留在內存里,這樣下次啟動時就會非常快,因為省去了再次從儲存設備讀取的時間,只有當內存不足以啟動一個新進程時,Android才會清除某些駐留在內存中停止活動的進程。
每個進程以Java虛擬機獨立存在,互不干擾。確保Android的穩定性,正常情況下即使單個進程崩潰,整個系統也不會崩潰,也永遠沒有內存不足的提示出現。
以上,可以解釋Android剩余內存總是很少的原因。“但是,進程在后臺運行會耗電耗流量的???”這個繼續解釋……
Android的多任務機制:
當進程被切換到后臺時,系統暫停進程。不消耗cpu資源,只在內存保留運行狀態,并根據應用本身設置優先級。
Android的七個優先級:
前臺進程:顧名思義,你當前屏幕正在顯示的進程。
可見進程:隨時需要待命的進程,例如隨時需要召喚出來的輸入法。
主要服務:系統的必須服務,例如電話。
次要服務:與系統關系密切的服務,例如Gmail的郵件推送服務。
后臺進程:同樣顧名思義,就是剛剛被你切換到后臺的進程。
內容供應節點:沒有應用實體,僅提供內容供別的應用去用的,比如日歷供應節點,郵件供應節點等。
空進程:沒有任何東西在運行的進程,有些應用在退出后,依然會在進程中駐留一個空進程,這樣的作用是提高該應用下次的啟動速度或記錄一些歷史信息.
小編總結:
綜上,正常的用戶應用在退出之后要不就成為后臺進程,要不就成為空進程。這些進程已經暫停了運行,不占用CPU資源和電量。在內存不足,用戶需要打開另外的應用時,就會自動清除掉,所以完全不需要清理內存。相反有時清理了內存之后系統反而需要用大量的電量和CPU去重啟必要的進程。
可是為什么有些應用在關掉了之后仍然會耗費電量和流量呢?唯一的答案是,這是一個不安分的應用。應用作者在寫應用的時候就為應用申請了各種各樣的主要服務和次要服務,導致用戶退出后仍然繼續運行。這種現象在一些國產應用上尤其常見。面對這些亂七八糟的沒良心的應用和應用作者,果斷把它卸載并沖到臭水溝里面去吧,差評!
更多新鮮有趣的互聯網資訊,請關注@刷機大師新浪微博:我要關注
你還可以關注刷機大師的官方QQ空間:我要關注
海量ROM下載請點擊:ROM基地官方入口
本文標簽:Android,內存清理,清理內存