Android內(nèi)存泄露容易導(dǎo)致內(nèi)存溢出犹菇,又稱為OOM。
內(nèi)存泄漏怎么產(chǎn)生的
- 資源對(duì)象沒關(guān)閉造成的內(nèi)存泄漏
- 構(gòu)造Adapter時(shí)芽卿,沒有使用緩存的convertView
- Bitmap對(duì)象不在使用時(shí)調(diào)用recycle()釋放內(nèi)存
- 試著使用關(guān)于application的context來替代和activity相關(guān)的context
- 注冊(cè)沒取消造成的內(nèi)存泄漏
- 集合中對(duì)象沒清理造成的內(nèi)存泄漏
怎么查找內(nèi)存泄漏
- 使用Android Studio 自帶的Android Profiler工具
- 使用Square產(chǎn)品的LeadCanary.
Android內(nèi)存優(yōu)化策略
- 在循環(huán)內(nèi)盡量不要使用局部變量
- 不用的對(duì)象即時(shí)釋放揭芍,即指向NULL
- 數(shù)據(jù)庫的cursor即時(shí)關(guān)閉。
- 構(gòu)造adapter時(shí)使用緩存convertView
- 調(diào)用registerReceiver()后在對(duì)應(yīng)的生命周期方法中調(diào)用unregisterReceiver()
- 即時(shí)關(guān)閉InputStream/OutputStream卸例。
- android系統(tǒng)給圖片分配的內(nèi)存只有8M, 圖片盡量使用軟引用, 較大圖片可通過BitmapFactory縮放后再使用,并及時(shí)recycle
- 盡量避免static成員變量引用資源耗費(fèi)過多的實(shí)例称杨。