Android内存管理机制详解,【安卓知识普及贴】之关于安卓内存管理机制的一些介绍和阐述。...
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
安卓系統(tǒng)其實(shí)不需要極度精簡,只是一味的精簡并不會給系統(tǒng)帶來什么好處反而只有害處,因?yàn)樵S多系統(tǒng)應(yīng)用跟設(shè)置里的選項(xiàng)有關(guān)聯(lián),刪除掉就會在選擇關(guān)聯(lián)選項(xiàng)的時(shí)候FC,所以應(yīng)當(dāng)盡量保證系統(tǒng)的完整性。后臺為什么會無緣無故多出很多進(jìn)程呢?如果你真的理解安卓進(jìn)程管理機(jī)制和軟件架構(gòu)的話,就會發(fā)現(xiàn)各種Receiver,各種CHANGED事件其實(shí)才是主因,一切都是軟件進(jìn)程事件觸發(fā)自行后臺啟動造成的。因?yàn)榘沧康倪M(jìn)程管理機(jī)制是事件觸發(fā)式,比如開機(jī)時(shí)、開機(jī)后、網(wǎng)絡(luò)連接更改、電量不足、電量充足、時(shí)間更改、插上電源、斷開電源等等這些狀態(tài)的改變都可看作一個(gè)事件,而安卓系統(tǒng)允許程序關(guān)聯(lián)這些事件(這個(gè)是在程序開發(fā)中由開發(fā)者設(shè)定的),比如關(guān)聯(lián)開機(jī)事件后,就相當(dāng)于我們一般說的開機(jī)啟動了。但是安卓系統(tǒng)是可以允許一個(gè)程序關(guān)聯(lián)多個(gè)事件的,以谷歌地圖舉例,它關(guān)聯(lián)的觸發(fā)事件有“開機(jī)后、安裝程序、卸載程序、更新程序、插上電源”等等,這些事件中的任何一個(gè)狀態(tài)發(fā)生改變,系統(tǒng)就會自動后臺運(yùn)行谷歌地圖。雖然安卓系統(tǒng)這樣做的目的是為了提高程序運(yùn)行的效率,但是實(shí)際上卻給普通用戶帶來了太多不必要的麻煩。
安卓系統(tǒng)為什么會總是突然出現(xiàn)卡頓呢,是因?yàn)楹芏嘬浖惭b完以后所產(chǎn)生的自啟動項(xiàng),會在你不知道的情況下,并會根據(jù)不同觸發(fā)條件自行啟動自身的進(jìn)程,每次如果有一些自啟動進(jìn)程一起啟動的時(shí)候都會臨時(shí)占用大量CPU資源和內(nèi)存資源,所以系統(tǒng)此時(shí)必然會出現(xiàn)卡頓。很多軟件甚至?xí)谀闱袚Q移動/WiFi網(wǎng)絡(luò)的時(shí)候自行啟動。假如你事先沒有把WiFi設(shè)置成永不休眠,那么鎖屏一段時(shí)間后WiFi會自行關(guān)閉進(jìn)入休眠狀態(tài),每一次開屏系統(tǒng)就會自行啟用一次WiFi,而很多軟件在啟用WiFi或者切換為移動網(wǎng)絡(luò)的時(shí)候就會以此為觸發(fā)條件自行啟動。這個(gè)過程雖然短暫,但是會瞬間消耗大量的硬件資源,一定會出現(xiàn)卡頓的現(xiàn)象。所以你需要做的就是,使用自啟管理禁止這些情況發(fā)生。而且機(jī)器總是特別耗電的問題,也大多是出在這上面,并非全是基帶和系統(tǒng)版本的問題。這才是需要關(guān)注的本質(zhì)問題:后臺進(jìn)程太多,總是自行啟動無謂的消耗電量。很多人總是關(guān)注自己機(jī)器的內(nèi)存使用情況怕運(yùn)行內(nèi)存剩余量變少,其實(shí)是錯(cuò)誤的。2.3.4的安卓系統(tǒng)是改進(jìn)了的內(nèi)存管理機(jī)制,內(nèi)存使用率高一些其實(shí)是一種優(yōu)化,大多時(shí)候系統(tǒng)會保留緩存進(jìn)程并占用一些內(nèi)存以加速程序運(yùn)行。所以總是用任務(wù)管理器殺進(jìn)程來節(jié)省內(nèi)存其實(shí)是一種錯(cuò)誤的行為,因?yàn)槟憧粘鎏鄡?nèi)存并沒有好處,往往只有壞處。例如你殺掉了某個(gè)系統(tǒng)進(jìn)程,系統(tǒng)會以為是緊急釋放,現(xiàn)在內(nèi)存又有了空間就會自動的重新加載這個(gè)進(jìn)程,這么重新加載一下就要動用CPU進(jìn)行輪詢遍歷,要通過I/O讀取存儲器....這個(gè)時(shí)候雖然你可能并不知道,但系統(tǒng)開銷極其巨大,給你的直觀感受就是—怎么又卡了,又比如,你隨手干掉了一堆進(jìn)程,內(nèi)存空出來了,然后你滑動界面發(fā)現(xiàn)怎么還是卡?一次次的清理內(nèi)存,相當(dāng)于一次次的清空系統(tǒng)的冷熱判斷機(jī)制,明明很冷的程序,系統(tǒng)給你加載上了,明明很熱的程序,系統(tǒng)轉(zhuǎn)手給你釋放了....要么系統(tǒng)出錯(cuò),要么重建程序帶來系統(tǒng)消耗。
在了解了這些以后,有針對性的進(jìn)行優(yōu)化,刪除一小部分實(shí)在沒用的系統(tǒng)附帶應(yīng)用,盡量保證系統(tǒng)完整性,通過其他的方法來提高系統(tǒng)表現(xiàn)即可,自啟管理這個(gè)軟件恰好是能把每個(gè)軟件的receiver接收器事件全部列出來,讓用戶自己選擇禁用或者啟用,而市場上大大多數(shù)所謂的優(yōu)化軟件只能做到禁止最簡單的開機(jī)項(xiàng)(基本沒有什么意義),這就是為什么我推薦大家使用自啟管理這個(gè)軟件的原因
Android的內(nèi)存管理機(jī)制,這是一種完全不同于WM,Symbian,Windows乃至Linux的機(jī)制,是一種專門針對移動系統(tǒng)設(shè)計(jì)的機(jī)制,所以不要用其他系統(tǒng)的一些慣性思維來玩安卓。在傳統(tǒng)機(jī)制下,程序結(jié)束,內(nèi)存釋放,程序進(jìn)入后臺,系統(tǒng)消耗資源維持后臺進(jìn)程運(yùn)行和狀態(tài)。但Android并非如此,Android將運(yùn)行在操作系統(tǒng)上的程序分為六大類:
總結(jié)
以上是生活随笔為你收集整理的Android内存管理机制详解,【安卓知识普及贴】之关于安卓内存管理机制的一些介绍和阐述。...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android后台时不显示,Androi
- 下一篇: android novate乱码,And