Android中一些你可能不太知道的東西
1.不用在意剩余內存的大小
其實很多人都是把使用其他系統(tǒng)的習慣帶過來來了。android大多應用沒有退出的設計其實是有道理的(下一篇我會講到Android應用程序完全退出方法),這和系統(tǒng)對進程的調度機制有關系。如果你知道java,就能更清楚這機制了。其實和java的垃圾回收機制類似,系統(tǒng)有一個規(guī)則來回收內存。進行內存調度 有個閥值,只有低于這個值系統(tǒng)才會按一個列表來關閉用戶不需要的東西。當然這個值默認設置得很小,所以你會看到內存老在很少的數值徘徊。但事實上他并不影響速度。相反加快了下次啟動應用的速度。
這本來是android標榜的優(yōu)勢之一,如果人為去關閉進程,沒有太大必要。特別是使用自動關進程的軟件。(這里解決了大家非要關進程的誤區(qū)?。?/p>
2.為什么內存少的時候運行大型程序會慢呢?
那其實很簡單,在內存剩余不多時打開大型程序,會觸發(fā)系統(tǒng)自身的調進程調度策略,這是十分消耗系統(tǒng)資源的操作,特別是在一個程序頻繁向系統(tǒng)申請內存的時候。這種情況下系統(tǒng)并不會關閉所有打開的進程,而是選擇性關閉,頻繁的調度自然會拖慢系統(tǒng)。所以,通過更改內存閥值的程序可以有一定改善。但改動也可能帶來一些問題,取決于值的設定。
那么,進程管理軟件有無必要呢?有的。就是在運行大型程序之前,你可以手動關閉一些進程釋放內存,可以顯著的提高運行速度。但一些小程序,完全可交由系統(tǒng)自己管理。
3.不關程序是不是會更耗電?
這里講解一下android后臺的原理,你就明白了。android的應用在被切換到后臺時,它其實已經被暫停了,并不會消耗cpu資源,只保留了運行狀態(tài)。所以為什么有的程序切出去重進會到主界面。但是,一個程序如果想要在后臺處理些東西,如音樂播放,它就會開啟一個服務。服務可在后臺持續(xù)運行,所以在后臺耗電的也只有帶服務的應用了。這個在進程管理軟件里能看到,標簽是service。
所以沒有帶服務的應用在后臺是完全不耗電的,沒有必要關閉。這種設計本來就是一個非常好的設計,下次啟動程序時,會更快,因為不需要讀取界面資源,何必要關掉他們抹殺這個android的優(yōu)點呢?
4.為什么android一個應用看起來那么耗內存
大家知道,android上的應用是java,當然需要虛擬機,而android上的應用是帶有獨立虛擬機的,也就是每開一個應用就會打開一個獨立的虛擬機。這樣設計的原因是可以避免虛擬機崩潰導致整個系統(tǒng)崩潰,但代價就是需要更多內存。(跟塞班也不一樣,安卓不容易死機重啟)
以上這些設計確保了android的穩(wěn)定性,正常情況下最多單個程序崩潰,但整個系統(tǒng)不會崩潰,也永遠沒有內存不足的提示出現。
大家可能是被 windows毒害得太深了,總想保留更多的內存,但實際上這并不一定會提升速度,相反卻喪失了程序啟動快的這一系統(tǒng)特色,很沒必要。大家不妨按我說的習慣來用用這個系統(tǒng)。