第一次使用安卓的時候,覺得很不習慣,因為我發覺進程管理軟件根本就是個擺設,一些軟件你關掉了,馬上又會運行,當初用GO桌面自帶進程管理,感受特別深刻,弄得自己都快要崩潰。。后來翻閱了大量資料,有種豁然開朗的感覺。。原來如此。
簡單來說吧,安卓的進程管理機制是事件觸發式
比如開機時、開機后、網絡連接更改、電量不足、電量充足、時間更改、插上電源等等這些狀態的改變都可看作一個事件,安卓系統允許程序關聯這些事件(這個在程序開發中設定的),比如關聯開機后,差不多就相當于我們一般說的開機啟動了。但是安卓系統可以允許一個程序關聯多個事件,拿谷歌地圖來說吧,它關聯的事件有“開機后、電量不足、電量充足、安裝應用程序、卸載應用程序、更新應用程序、插上電源”等等。。。中間任何一個狀態改變,系統都會自動運行谷歌地圖進入后臺,你說任務管理器得多少次才能完全結束呢?
安卓為什么要這樣做呢?
其實這樣做的目的是為了提高程序運行的效率。舉例來說,當你打開WIFI時,肯定要上網,系統就會調入一些上網的關聯程序進入后臺休眠(只占用內存,不占用CPU資源),當你真正需要運行這些程序的時候,系統直接把程序從后臺轉到前臺運行,這樣大大提高了程序的運行效率,我覺得這也是統籌方法的一種應用吧。至于說會不會軟件一直啟動會把內存占滿,這個不用擔心,當系統內存低于某個值時,內存管理機制會根據進程的優先級來關閉后臺進程。但是呢,在硬件配置飛速發展的今天,像小米手機,即便是一步步加載程序也是秒速來算的,所以這個運行效率也沒有得到多大的體現。鑒于一些軟件進入后臺不只是休眠,可能會有些費電,所以我們不如把這個事件觸發的關聯切斷。怎么切斷?
我覺得一個軟件比較好,Autostarts啟動項管理
這個軟件就是針對這個而生的,它只做這個,做完退出,不會像其他進程管理一樣常駐內存。打開來,里面有按事件分組,一個事件下面列出所有關聯這個事件的所有程序;也可以按程序分組,一個程序下面列出這個程序關聯了哪些事件,你把覺得沒有必要關聯的事件觸發禁用掉就好了。如果禁用掉之后,這個程序還會自動運行,你可以再次打開Autostarts,按菜單鍵—查看,把隱藏未知事件取消勾選,可能這個程序關聯了Autostarts搞不明白的事件,如果有,禁用之。
注意:搞這個是有風險,黃色的顯示是系統進程,禁用的時候會有提示,如果你沒有把握就留著。不過也不要太擔心,如果禁用錯了導致某個功能無法使用,再啟用就可以了。另外程序重新安裝或者作了升級,會重建事件觸發關聯,要重新運行Autostarts切斷它。
PS:其實安卓的進程機制是很復雜的,前臺進程(foreground),可見進程(visible),次要服務(secondaryserver),后臺進程(hidden),空進程(empty),至于他們究竟運作,我們沒有必要太了解,知道個大概就好了。
像小米自帶的任務管理器還要不要用呢,要,因為某些程序你打開后不能完全退出,需要用那個來結束。運行大的游戲之前最好釋放一下內存。
有些進程管理軟件,需要常駐內存,等進程運行就把進程殺掉,還美其名曰自動殺進程,其實傻得可愛,該軟件不需要常駐內存,運行一次,切斷與應用程序觸發關聯就可以退出了。