1.recycle
Bitmap是存儲在native內(nèi)存和java內(nèi)存上,當(dāng)其被對象回收的時候,需要分兩部分來回收,一是回收java內(nèi)存中的內(nèi)存,二是回收native中的內(nèi)存。官方建議我們調(diào)用recycle()方法,即對Bitmap內(nèi)存的回收。recycle表示在釋放Bitmap內(nèi)存的時候,會釋放和這個Bitmap對象有關(guān)的native的內(nèi)存,同時還會清理有關(guān)數(shù)據(jù)對象的引用,但并不是立即清理數(shù)據(jù),只是給垃圾回收機制發(fā)送一條指令,讓它在沒有其他對象引用這個Bitmap的時候,進行垃圾回收。(官網(wǎng)不建議主動調(diào)用,反正gc會自動回收)
2、LRU
最近最少使用對象被清理
3、計算inSampleSize
4、縮略圖
5、三級緩存
網(wǎng)絡(luò)、本地、內(nèi)存
首次打開從網(wǎng)絡(luò)走,然后存到sd卡和內(nèi)存,然后下次請求,直接從本地或內(nèi)存取就好了
網(wǎng)絡(luò)緩存:速度慢,浪費流量
內(nèi)存:速度快