[瀬戸のテーマ] Android 分享 - 系統保養大法心得
多工系統,Multi-task System
這個字眼其實是針對使用者和程式開發者多於系統本身,因為這世上沒有一個系統不是多工的。那麼,為什麼又會有這個術語?
原因很簡單,因為其實多工指的並非系統本身,而是操作環境。多工和非多工的操作環境有何分別?
系統在執行一個程序時,會有以下幾個步驟:
- 把主程式放到 RAM 中
- 在 RAM 中執行程序
- 依照程序的需要,把 RAM 分給該程序使用
在執行程序時,多工和非多工操作環境是沒有分別的,而分別在程序結束時。
多工操作環境:
- 把分給該程序使用的 RAM 回收
- 如程序本身沒有設定自行關閉的話,會把主程式留在 RAM 中
- 如該程序沒有工作的話,就會在背景待命,否則就是背景執行。
非多工操作環境:
- 強制關閉該程序
- 把分給該程序使用的 RAM 回收
- 把主程式從 RAM 中移除,取回記憶體
說到這裡,多工與非多工的分別大家就會很清楚了。那麼多工系統沒有辦法永保系統的順暢度嗎?
這是非多工環境的 Iphone、Featured Phone 和多工環境的 Windows Mobile(WM)、Symbian、Android 最大的分別。
Iphone 永遠有足夠的 RAM 去給系統運作,所以永保系統運作的順暢度。
而 WM、Symbian、Android 這類多工系統,在執行一定數量的程序後,系統便會變鈍。
多工系統對使用者來說,最大的課題是如何管理記憶體。如何分辨常註和非常註的程序?
在我們的桌上電腦,記憶體通常是足夠,但在手提裝置上,記憶體是經常不足的。
在這裡雖然只談 Android 系統,不過 WM 和 Symbian 的處理方法是一樣的,在記憶體降至一定水平後,系統就會因記憶體不足而變得鈍鈍的,這時只要把記憶體釋放出來就可以。
Android 還是初生之犢,還沒有很優秀的系統管理工具能實現無腦操作,所以在說明方法前,先來說說在多工系統的操作環境中,已開啟的程序可以分為以下幾種:
上述比較重要的是 4 和 5 的常註程序。
- 前景執行 - 指正在運作中,可以看到其介面的程序
- 背景執行 - 指正在運作中,但不可以看到其介面的程序
- 待命 - 開啟了但沒有運作的程序,可以是前景,可以是背景
- 系統常註 - 系統的程序,通常為背景執行或在背景待命,使用者沒有控制權限
- 其他常註 - 非系統的程序,但必需保持在背景執行或背景待命,使用者有控制權限
系統常註的程序,我們永遠不要動。雖然沒有權限,但有權限也不要動。
其他常註的程序,我們也不要動,這些程序被關閉後不久,會自動在背景重啟,這樣系統反而會不久就鈍一下。而且強制關閉這些程序,可能會令其運作中的資料也一併消除,有很大的可能出現不穩定的狀況,影響系統的運作。
至於 1 至 3 這些非常註的程序,就是奪回貴重記憶體的開刀處。
其實方法很簡單,在系統啟動完成後,執行中的程序就是常註的程序了。
這些程序包括:
- 系統運作必要的程序 - 系統本身、所有硬體控制程序
- 使用者設置的程序 - Widgets、系統工具等等
為保有系統的穩定性,這類程序我們絕對不要強制關閉。現時有那些系統管理工具?
Android 系統本身沒有這類系統管理工具。何時才是按下紅色機器人的最好時機?
而第三方就有數款:
其實還有一兩個,但因為本身沒有很好的功能,也有令系統不穩定的情況,所以不說了。
- Advanced Task Manager - 功能強大,有好好的分類、系統資料、Ignore List,不過分類有些含糊不清,對不熟識系統運作的使用者來說非常不利。而且經測試一段時間後,其使用時間越長,對系統的負擔越重,本末倒置。
- TasKiller - 沒有分類,但不會顯示系統常註程序,有 Ignore List,介面簡單易用。經測試後非常穩定,是新手的必然之選。
所以在經過每星期不關機的測試後,暫時最好的管理工具是 TasKiller。
關於 TasKiller
TasKiller 有分免費版和收費的 Full 版本,小弟是用 Full 版本的。
以下是 TasKiller 的說明和設定:
![]()
![]()
在安裝好 TasKiller Full 後,除了主程式外,還外加兩個 Widgets。
小的紅色機器人,是一鍵關閉所有非常註程序的 Widgets。
而佔地 1x3 的長方型 Widgets,會顯示在背景中運作或待命的程序,按一下該程序的圖示,會關閉該程序,而按一下紅色機器人就會把全部程序關閉。還會顯示剩餘的記憶體。
這時甚麼也不要做,重新啟動機器。
重啟後,甚麼也不要做,先開啟 TasKiller 主程式。![]()
![]()
在機子剛啟動的這個狀態下,這一堆就是使用者設置的常註程序列表。
在程序上長按一會,出現選項,選 Ignore,這個程序就會放到 Ignore List。
把這裡所有程序也放到 Ignore List 中,TasKiller 不用。
Ignore List 中的程序是不會被 TasKiller 強制關閉。
我是把所有安裝好的輸入法也放到 Ignore List 中的。
另外,如果有用 Google 定位跟朋友分享位置的話,最好也把那些 com.google.android.apps.maps:xxx 這些程序也加到 Ignore List 中,因小弟試過強制關閉她們後,令她們發脾氣,最後令系統不太穩定。
還有就是把一些如音樂、鬧鐘和 HTC Sync 也加到 Ignore List,因為這些如被強制關閉後,會有甚麼後果也不出奇。
![]()
設定好後,按一下 MENU 鍵,選 Settings。
![]()
![]()
把 Hide ignored application 勾選,那麼 Ignore List 中的程序就不會被顯示出來。
按一下 Ignore List 後,就會列出 Ignore List 中的所有項目,不管是不是已開啟,也會顯示出來。
按一下 Clear 會清空 Ignore List,如要清除其中一項,要進入 Ignore List,長按該項目後選 Remove 就可以。
![]()
![]()
這樣,只要在 Widget 上按一下紅色機器人,就可以把非常註的程序全部關閉。
還可以使用自訂圖案
但要留意,如果新增了 Widget 的話,記緊把該 Widget 程序放到 Ignore List 中。
其實,每個程序在進入待命前,是需要一些時間的。這些時間是用來把處理中的資料記錄下來,令下次起動時能正常回到上次的工作環境。開機後不久,記憶體只剩不到 50M 了,為甚麼?
所以在使用完後,等上最少十秒鐘,才按下紅色機器人。
不過,其實也不用經常按的。
Android 系統在運行時,有 30M 的記憶體也是很順暢的,所以在記憶體餘下不足 50M 時,才去處理也沒有問題。
在 Home 畫面中的每個物件,包括 Widgets、程式捷徑等等,會佔用到記憶體,一些 Widgets 的運作會佔較多記憶體,也有一些第三方程式會常註在系統中背景運作,亦會佔用較多的記憶體。Home 運作不順暢,但記憶體有很多,超過 50M,為甚麼?
由於每個人所需不同,所以要針對自己的用途來選擇。
請解除安裝那些不會用到的 Widgets,因為他們會靜靜地在背景常註待命,佔用記憶體。
程式捷徑可以放到資料夾中,這樣在開啟資料夾時才會佔用記憶體,關閉後不久就會把記憶體釋放出來。
如果是 Android 本身的三頁 Home 的話是沒有問題的。那麼,版主的使用結果如何?
如果是一些第三方的 Home,有可能是該 Home 的穩定性不足所至。
小弟用過 AHome、OpenHome 和 FreshFace 三個 Home 程式,最穩定和功能足夠的是 OpenHome。
有時也會是 Widgets 引致系統不穩定,可以嘗試把 Widget 逐一從 Home 中移走,去看看那個 Widget 出問題。
如果像 AHome 和 OpenHome 這類可以旋轉的 Home,會不停偵測 G-Sensor 的,所以會令系統長時間繁忙。小弟是用 OpenHome 的,我在手機的設定中把 G-Sensor 關掉,令系統有足夠的休息。因為關掉 G-Senor 後,Internet Browser、Office 之類需要旋轉屏幕的軟件還是可以正常旋轉屏幕,所以並不會產生不便。而且關掉 G-Sensor 有效節省電源,是一個很好的方案。
小弟在四日前把數款系統管理工具測試完成,也把一些其他的程式也一併測試完成。下回預告:
手上的 Magic 已經持續開啟了超過 80 小時,在清空非常註程序後,記憶體還保持在 70M 前後,系統保持穩定,運作也保持暢順,非常完美。
而且這個 70M 前後的結果,是又第二日開始便保持這個水平,也就是說系統中並沒有一些奇怪的東西把記憶體暗槓起來。
可惜的是,小弟原本是打算拍下手機的運作放到 YouTube 的,不過在寫這編 Android 分享第一編時,跟上述程序把手機重啟了。
所以要待數天後,好讓手機運行了數天,來証明小弟這套系統保養大法是非常完美。
- 如何捕捉 Android 手機的屏幕影像(包含在 64-bit 系統下使用 DDMS 說明)
- 一些強大的必玩程式推介(不定時更新)
- YouTube 大放送,Android 保養大法下的 Magic。
- 未定……
留言