轉zol<span class="t_tag" href="http://bbs.gfan.com/tag.php?name=%E8%AE%BA%E5%9D%9B">論壇</span>的帖子 <br /> <br /> 不用在意剩餘內存的大小,其實很多人都是把使用其他<span class="t_tag" href="http://bbs.gfan.com/tag.php?name=%E7%B3%BB%E7%BB%9F">系統</span>的習慣帶過來來了<br /> 。<span class="t_tag" href="http://bbs.gfan.com/tag.php?name=android">android</span>大多應用沒有退出的設計其實是有道理的,這和系統對進程的調度機制有關係。<br /> 如果你知道java,就能更清楚這機制了。其實和java的回收機制類似,系統有一個規則來回收內存。<br /> 進行內存調度有個閥值,只有低於這個值系統才會按一個列表來關閉用戶不需要的東西。<br /> 當然這個值默認設置得很小,所以你會看到內存老在很少的數值徘徊。但事實上他並不影響速度。<br /> 相反加快了下次啟動使用的速度。這本來就是android標榜的優勢之一,如果人為關閉進程,<br /> 沒有太大必要。特別是使用自動關進程的<span class="t_tag" href="http://bbs.gfan.com/tag.php?name=%E8%BD%AF%E4%BB%B6">軟件</span>。<br /> <br /> 到這裡有人會說了,那為什麼內存少的時候運行大型程序會慢呢?其實很簡單,<br /> 在內存剩餘不多時打開大型程序,會觸發系統自身的調進程調度策略,這是十分消耗系統資源的操作,<br /> 特別是在一個程序頻繁向系統申請內存的時候。這種情況下系統並不會關閉所有打開的進程,<br /> 而是選擇性關閉,頻繁的調度自然會拖慢系統。<br /> 所以,論壇上有個更改內存閥值的程序可以有一定改善。但改動也可能帶來一些問題,取決於值的設定。 <br /> 那麼,進程管理軟件有無必要呢?有的。就是在運行大型程序之前,你可以手動關閉一些進程釋放內存,<br /> 可以顯著的提高運行速度。但一些小程序,完全可交由系統自己管理。<br /> <br /> 談到這裡,可能有的<span class="t_tag" href="http://bbs.gfan.com/tag.php?name=%E6%9C%8B%E5%8F%8B">朋友</span>會問,如果不關程序是不是會更耗電。我就說說android後台的原理,你就明白了。<br /> android的應用在被切換到後台時,它其實已經被暫停了,並不會消耗cpu資源,只保留了運行狀態。<br /> 所以為什麼有的程序切出去重進會到主界面。但是,一個程序如果想要在後台處理些東西,如<span class="t_tag" href="http://bbs.gfan.com/tag.php?name=%E9%9F%B3%E4%B9%90">音樂</span>播放,<br /> 它就會開啟一個服務。服務可在後台持續運行,所以在後台耗電的也只有帶服務的應用了。<br /> 這個在進程管理軟件裡能看到,標籤是service。至於廣播什麼的我就不涉及了。<br /> 所以沒有帶服務的應用在後台是完全不耗電的,沒有必要關閉。這種設計本來就是一個非常好的設計,<br /> 下次啟動程序時,會更快,因為不需要讀取界面資源,何必要關掉他們抹殺這個android的優點呢。<br /> <br /> 還有一個,為什麼android一個應用看起來那麼耗內存。大家知道,android上的應用是java,當然需要虛擬機,而android上的應用是帶有獨立虛擬機的,也就是每開一個應用就會打開一個獨立的虛擬機。<br /> 這樣設計的原因是可以避免虛擬機崩潰導致整個系統崩潰,但代價就是需要更多內存。<br /> 以上這些設計確保了android的穩定性,正常情況下最多單個程序崩潰,但整個系統不會崩潰,也永遠沒有內存<br /> 不足的提示出現。<br /> 大家可能是被windows毒害得太深了,總想保留更多的內存,但實際上這並不一定會提升速度,相反卻喪失了程序啟動快的這一系統特色,很沒必要。<br /> <br /> 大家不妨按我說的習慣來用用這個系統。<br />
不用在意剩餘內存的大小,其實很多人都是把使用其他系統的習慣帶過來來了
。android大多應用沒有退出的設計其實是有道理的,這和系統對進程的調度機制有關係。
如果你知道java,就能更清楚這機制了。其實和java的回收機制類似,系統有一個規則來回收內存。
進行內存調度有個閥值,只有低於這個值系統才會按一個列表來關閉用戶不需要的東西。
當然這個值默認設置得很小,所以你會看到內存老在很少的數值徘徊。但事實上他並不影響速度。
相反加快了下次啟動使用的速度。這本來就是android標榜的優勢之一,如果人為關閉進程,
沒有太大必要。特別是使用自動關進程的軟件。
到這裡有人會說了,那為什麼內存少的時候運行大型程序會慢呢?其實很簡單,
在內存剩餘不多時打開大型程序,會觸發系統自身的調進程調度策略,這是十分消耗系統資源的操作,
特別是在一個程序頻繁向系統申請內存的時候。這種情況下系統並不會關閉所有打開的進程,
而是選擇性關閉,頻繁的調度自然會拖慢系統。
所以,論壇上有個更改內存閥值的程序可以有一定改善。但改動也可能帶來一些問題,取決於值的設定。
那麼,進程管理軟件有無必要呢?有的。就是在運行大型程序之前,你可以手動關閉一些進程釋放內存,
可以顯著的提高運行速度。但一些小程序,完全可交由系統自己管理。
談到這裡,可能有的朋友會問,如果不關程序是不是會更耗電。我就說說android後台的原理,你就明白了。
android的應用在被切換到後台時,它其實已經被暫停了,並不會消耗cpu資源,只保留了運行狀態。
所以為什麼有的程序切出去重進會到主界面。但是,一個程序如果想要在後台處理些東西,如音樂播放,
它就會開啟一個服務。服務可在後台持續運行,所以在後台耗電的也只有帶服務的應用了。
這個在進程管理軟件裡能看到,標籤是service。至於廣播什麼的我就不涉及了。
所以沒有帶服務的應用在後台是完全不耗電的,沒有必要關閉。這種設計本來就是一個非常好的設計,
下次啟動程序時,會更快,因為不需要讀取界面資源,何必要關掉他們抹殺這個android的優點呢。
還有一個,為什麼android一個應用看起來那麼耗內存。大家知道,android上的應用是java,當然需要虛擬機,而android上的應用是帶有獨立虛擬機的,也就是每開一個應用就會打開一個獨立的虛擬機。
這樣設計的原因是可以避免虛擬機崩潰導致整個系統崩潰,但代價就是需要更多內存。
以上這些設計確保了android的穩定性,正常情況下最多單個程序崩潰,但整個系統不會崩潰,也永遠沒有內存
不足的提示出現。
大家可能是被windows毒害得太深了,總想保留更多的內存,但實際上這並不一定會提升速度,相反卻喪失了程序啟動快的這一系統特色,很沒必要。
大家不妨按我說的習慣來用用這個系統。