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