在Android開(kāi)發(fā)中,要時(shí)刻注意內(nèi)存的分配和垃圾回收,因?yàn)橄到y(tǒng)為每一個(gè)dalvik虛擬機(jī)分配的內(nèi)存是有限的。這樣就需要我們?cè)陂_(kāi)發(fā)的過(guò)程中時(shí)刻注意,不要因?yàn)樽约旱拇a問(wèn)題造成OOM。
Android應(yīng)用層是由Java開(kāi)發(fā)的,Android的dalvik虛擬機(jī)與jvm也類似,只不過(guò)它是基于寄存器的。因此要了解Android的內(nèi)存管理就必須了解Java的內(nèi)存分配和垃圾回收機(jī)制。
在Java中,是通過(guò)new關(guān)鍵字來(lái)為對(duì)象分配內(nèi)存的,而內(nèi)存的釋放是由垃圾回收器(GC)來(lái)回收的,在開(kāi)發(fā)的過(guò)程中,不需要顯示的去管理內(nèi)存。但是這樣有可能在不知不覺(jué)中就會(huì)浪費(fèi)了很多內(nèi)存,最終導(dǎo)致Java虛擬機(jī)花費(fèi)很多時(shí)間去進(jìn)行垃圾回收,更嚴(yán)重的是造成JVM 的OOM。因此,還是很必要了解Java內(nèi)存的分配和垃圾回收機(jī)制。