Android中的三级缓存机制
生活随笔
收集整理的這篇文章主要介紹了
Android中的三级缓存机制
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目的:1防止oom 2,提高加載效率
bitmap對象默認 ARGB_8888高質量圖片顯示,而我起先使用rgb565格式圖片呈現(xiàn)效果不變,內存減少近一半,但是從Android4.0開始該選項就無效了,即使設置了也按默認
第一級 ?強引用+軟引用?
采用LRU算法優(yōu)化內存使用,內存不足時,把最小使用的圖片優(yōu)先從內存移除
強引用:LRUCache即可 ?覆寫sizeOf返回每次加載Bitmap占用大小,覆寫entryRemoved,在硬內存放滿時和移除最少使用Bitmap
軟引用:LinkedHashMap完成該算法,通過復寫其removeEldestEntity方法實現(xiàn)
內存大小:各分配1/4
獲取總內存大小:
int menClass=((ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass(); 關于url處理,存儲url的hashCode,避免將來文件名非法,提高查找效率。硬內存:寧可oom內存不足,也不會釋放其中存儲的數據;
軟內存:一般其中的數據也不會被回收,但是當內存不足時,將釋放其中的數據,釋放掉后,如果將來還要使用,則先從本地加載,
第二級 ?本地緩存
同樣采取LRU算法管理緩存文件,當SD卡剩余容量不足時,優(yōu)先刪除使用最少圖片。
對存儲圖片根據使用時間生成LRU
第三級:網絡讀取
如果本地也沒有,從網絡重新加載.
三級緩存通過httpclient訪問網絡,先放到硬緩存里面,要讀再去加載.
總結
以上是生活随笔為你收集整理的Android中的三级缓存机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下常用的软件
- 下一篇: Android性能优化之内存优化