不用在意剩餘記憶體的大小,其實很多人都是把使用其他系統的習慣帶過來來了。android大多應用沒有退出的設計其實是有道理的,這和系統對程序的排程機制有關係。如果你知道java,就能更清楚這機制了。其實和java的垃圾回收機制類似,系統有一個規則來回收記憶體。進行記憶體排程有個閥值,只有低於這個值系統才會按一個列表來關閉使用者不需要的東西。當然這個值預設設定得很小,所以你會看到記憶體老在很少的數值徘徊。但事實上他並不影響速度。相反加快了下次啟動應用的速度。這本來就是android標榜的優勢之一,如果人為去關閉程序,沒有太大必要。特別是使用自動關程序的軟體。 到這裡有人會說了,那為什麼記憶體少的時候執行大型程式會慢呢?其實很簡單,在記憶體剩餘不多時開啟大型程式,會觸發系統自身的調程序排程策略,這是十分消耗系統資源的操作,特別是在一個程式頻繁向系統申請記憶體的時候。這種情況下系統並不會關閉所有開啟的程序,而是選擇性關閉,頻繁的排程自然會拖慢系統。所以,論壇上有個更改記憶體閥值的程式可以有一定改善。但改動也可能帶來一些問題,取決於值的設定。 那麼,程序管理軟體有無必要呢?有的。就是在執行大型程式之前,你可以手動關閉一些程序釋放記憶體,可以顯著的提高執行速度。但一些小程式,完全可交由系統自己管理。 談到這裡,可能有的朋友會問,如果不關程式是不是會更耗電。我就說說android後臺的原理,你就明白了。android的應用在被切換到後臺時,它其實已經被暫停了,並不會消耗cpu資源,只保留了執行狀態。所以為什麼有的程式切出去重進會到主介面。但是,一個程式如果想要在後臺處理些東西,如音樂播放,它就會開啟一個服務。服務可在後臺持續執行,所以在後臺耗電的也只有帶服務的應用了。這個在程序管理軟體裡能看到,標籤是service。至於廣播什麼的我就不涉及了。所以沒有帶服務的應用在後臺是完全不耗電的,沒有必要關閉。這種設計本來就是一個非常好的設計,下次啟動程式時,會更快,因為不需要讀取介面資源,何必要關掉他們抹殺這個android的優點呢。 還有一個,為什麼android一個應用看起來那麼耗記憶體。大家知道,android上的應用是java,當然需要虛擬機器,而android上的應用是帶有獨立虛擬機器的,也就是每開一個應用就會開啟一個獨立的虛擬機器。這樣設計的原因是可以避免虛擬機器崩潰導致整個系統崩潰,但代價就是需要更多記憶體。
不用在意剩餘記憶體的大小,其實很多人都是把使用其他系統的習慣帶過來來了。android大多應用沒有退出的設計其實是有道理的,這和系統對程序的排程機制有關係。如果你知道java,就能更清楚這機制了。其實和java的垃圾回收機制類似,系統有一個規則來回收記憶體。進行記憶體排程有個閥值,只有低於這個值系統才會按一個列表來關閉使用者不需要的東西。當然這個值預設設定得很小,所以你會看到記憶體老在很少的數值徘徊。但事實上他並不影響速度。相反加快了下次啟動應用的速度。這本來就是android標榜的優勢之一,如果人為去關閉程序,沒有太大必要。特別是使用自動關程序的軟體。 到這裡有人會說了,那為什麼記憶體少的時候執行大型程式會慢呢?其實很簡單,在記憶體剩餘不多時開啟大型程式,會觸發系統自身的調程序排程策略,這是十分消耗系統資源的操作,特別是在一個程式頻繁向系統申請記憶體的時候。這種情況下系統並不會關閉所有開啟的程序,而是選擇性關閉,頻繁的排程自然會拖慢系統。所以,論壇上有個更改記憶體閥值的程式可以有一定改善。但改動也可能帶來一些問題,取決於值的設定。 那麼,程序管理軟體有無必要呢?有的。就是在執行大型程式之前,你可以手動關閉一些程序釋放記憶體,可以顯著的提高執行速度。但一些小程式,完全可交由系統自己管理。 談到這裡,可能有的朋友會問,如果不關程式是不是會更耗電。我就說說android後臺的原理,你就明白了。android的應用在被切換到後臺時,它其實已經被暫停了,並不會消耗cpu資源,只保留了執行狀態。所以為什麼有的程式切出去重進會到主介面。但是,一個程式如果想要在後臺處理些東西,如音樂播放,它就會開啟一個服務。服務可在後臺持續執行,所以在後臺耗電的也只有帶服務的應用了。這個在程序管理軟體裡能看到,標籤是service。至於廣播什麼的我就不涉及了。所以沒有帶服務的應用在後臺是完全不耗電的,沒有必要關閉。這種設計本來就是一個非常好的設計,下次啟動程式時,會更快,因為不需要讀取介面資源,何必要關掉他們抹殺這個android的優點呢。 還有一個,為什麼android一個應用看起來那麼耗記憶體。大家知道,android上的應用是java,當然需要虛擬機器,而android上的應用是帶有獨立虛擬機器的,也就是每開一個應用就會開啟一個獨立的虛擬機器。這樣設計的原因是可以避免虛擬機器崩潰導致整個系統崩潰,但代價就是需要更多記憶體。