Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android手機 >> Android手機綜合 >> Android用戶進程管理誤區詳解

Android用戶進程管理誤區詳解

編輯:Android手機綜合

  去年自己就弄了一台i5700,主要用來編程時候做試驗平台(因為便宜)。今年6月給自己及父母各買了一台Android手機,自用DHD,老爸用的i9000,老媽用的Thunderbolt。在進行了許多Android系統的了解及編程之後,發現其實無論是論壇上的用戶還是家人使用的過程中,對於Android系統,特別是進程管理這一塊都有著許多誤區。這裡不是指責,只是提出自己的看法,希望拍磚的朋友們輕一點。

  一個極其意外的習慣——進程全殺、禁止自啟動

  記得剛剛開始用i5700時,我和很多人有著一個一樣的習慣——全殺進程。i5700的ram很小,而我又有一邊開著UC一邊開著校內一邊開著 iReader看書的惡習,通過諸如Advanced task killer之類的軟件清理進程,看到空閒ram一下子變多的時候容易有一種虛幻的快感。

  後來開始做Android程序,特別是了解到Android系統進程管理(特別是後台管理和自動釋放優先級低的進程換取空閒ram)後,才開始明白,當一個程序放到後台時,系統可能將數據保存起來而讓程序進行休眠,或者僅僅運行部分服務,僅僅當收到相關的申請時才恢復部分進程,處理完之後結束進程而保留服務——這些都是自動處理的,也就是說,如果用戶運行的軟件都是按照Android思想而設計的,那麼除了明確有退出按鍵的一部分大型程序外,其他程序是都可以運行後扔到後台不用再管了的,當某個程序需要更多ram時,系統會自動釋放掉一些不重要且最近沒有使用的程序;而當你打開某個曾經打開的程序時,系統會先檢查ram裡是不是有這個程序的部分進程,然後進行恢復,這樣可以更快打開它。

  當然了,如果手機本身ram很小而且cpu不給力,系統自然會很頻繁的終止進程釋放內存,這就使得許多小內存的手機用起來感覺一卡一卡的了。於是很多論壇都開始討論怎麼樣使得全殺過後空閒內存更大、怎樣禁止自動啟動某些進程——結果空閒ram確實大了,用起來反而更卡了——隨便切換個程序(如看書的時候來了個電話)系統都要重新啟動幾乎所有相關的進程,怎麼能反應不遲鈍。

  Android用RAM的方式,跟windows、WM、Sybiam是兩回事。在Android裡,RAM被用滿了是件好事。它意味著你可以快速打開之前打開的軟件,回到之前的位置。所以Android很有效的使用RAM,很多用戶看到他們的RAM滿了,就認為拖慢了他們的手機。而實際上,退出後重啟這些程序才真正拖慢了手機的響應。而且這些自動殺進程的軟件本身是個時刻活躍的進程,它始終在後台保持活躍使得CPU難以消停,反而增加了耗電量。

  這個問題最終我覺得應該埋怨程序員。許多國內的Android程序員編寫的程序根本就沒有對進程進行分類,總是試圖將所有進程都保留在內存裡(例如某著名手機浏覽器)!這就使得這些程序即使放到後台了,它也不許系統對其進程進行釋放。WM、Sybiam系統裡的內存管理沒有這麼智能,於是習慣了這種方法的程序員以及用戶就把這種內存管理方式和使用習慣用到了Android上。所以這裡建議,對於很多國內軟件(一般都至少還是會有個退出按鈕的),用完之後還是按一下退出吧,而對於規范化的程序,以及系統自帶的那些程序(例如google的程序基本都沒有退出),用過之後放後台就好。

  有意思的一個例子——老爸和老媽

  我的老爸是個准geek,i9000到手沒多久就開始了無盡的刷機和優化之旅。各種論壇上充滿了各種關於“優化”和“增加空閒內存”的帖子,他很聽從的裝了自動殺進程的軟件,刪了很多會自動啟動的google程序(地圖、gmail之類之類的),可是還會一個勁問我的DHD空閒內存有多少,為什麼會比他的手機空閒內存跟我差不多但是我的會更流暢。

  而我的母親對於手機之類的完全不怎麼了解,Thunderbolt在她手裡更像是有電話功能的游戲機,如果一個程序沒有明顯的退出按鈕,那她就完全不會退出,更不用說什麼禁止自動啟動什麼自動殺進程之類的東西了。於是當我爸發現老媽手機只有不到30mb的空閒ram可還是比他的i9000順暢,甚至此時還剛打開切水果開玩的時候,他終究相信了——我媽比他更會用Android手機。

  在我向他詳細說明為什麼可以把程序扔到後台,為什麼不應該用那些亂七八糟的進程管理軟件之後,他試了三天,然後總算承認——他之前那些所謂優化,全是瞎折騰……

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved