發表文章

目前顯示的是 2月, 2013的文章

[Android] 你還在清理進程,釋放RAM嗎?別再損害手機了

Android系統進程管理(基本原理:後臺管理和自動釋放優先順序低的進程換取空閒RAM) 當一個程式放到後臺時,系統可 能將資料保存起來而讓程式進行休眠,或者僅僅運行部分服務,僅僅當收到相關的申請時才恢復部分進程,處理完之後結束進程而保留服務——這些都是自動處理 的,也就是說,如果用戶運行的軟體都是按照Android思想而設計的,那麼除了明確有退出按鍵的一部分大型程式外,其他程式是都可以運行後扔到後臺不用 再管了的,當某個程式需要更多RAM時,系統會自動釋放掉一些不重要且最近沒有使用的程式;而當你打開某個曾經打開的程式時,系統會先檢查RAM裏是不是 有這個程式的部分進程,然後進行恢復,這樣可以更快打開它。 當然了,如果手機本身RAM很小而且CPU不給力,系統自然會很頻繁的終止進程釋放記憶體,這就使得許多小記憶體的手機用起來感覺一卡一卡的了。於是很多論壇 都開始討論怎麼樣使得全殺過後空閒記憶體更大、怎樣禁止自動啟動某些進程——結果空閒RAM確實大了,用起來反而更卡了——隨便切換個程式(如看書的時候來 了個電話)系統都要重新啟動幾乎所有相關的進程,怎麼能反應不遲鈍。 Android用RAM的方式,跟Windows、WM、Sybiam是兩回事。在Android裏,RAM被用滿了是件好事。它意味著你可以快速打開之 前打開的軟體,回到之前的位置。所以Android很有效的使用RAM,很多用戶看到他們的RAM滿了,就認為拖慢了他們的手機。而實際上,退出後重啟這 些程式才真正拖慢了手機的回應。而且這些自動殺進程的軟體本身是個時刻活躍的進程,它始終在後臺保持活躍使得CPU難以消停,反而增加了耗電量。 這個問題最終我覺得應該埋怨程式師。許多國內的Android程式師編寫的程式根本就沒有對進程進行分類,總是試圖將所有進程都保留在記憶體裏(例如某著名 手機流覽器)!這就使得這些程式即使放到後臺了,它也不許系統對其進程進行釋放。WM、Sybiam系統裏的記憶體管理沒有這麼智慧,於是習慣了這種方法的 程式師以及用戶就把這種記憶體管理方式和使用習慣用到了Android上。所以這裏建議,對於很多國內軟體,用完之後還是按一下退出吧,而對於規範化的程 序,以及系統自帶的那些程式(例如穀歌程式基本都沒有退出),用過之後放後臺就好。 PS: 1.養成良好的軟體使用習慣,不用了就退出