700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android中的三级缓存机制

Android中的三级缓存机制

时间:2023-03-23 13:20:23

相关推荐

Android中的三级缓存机制

目的:1防止oom 2,提高加载效率

bitmap对象默认 ARGB_8888高质量图片显示,而我起先使用rgb565格式图片呈现效果不变,内存减少近一半,但是从Android4.0开始该选项就无效了,即使设置了也按默认

第一级 强引用+软引用

采用LRU算法优化内存使用,内存不足时,把最小使用的图片优先从内存移除

强引用:LRUCache即可 覆写sizeOf返回每次加载Bitmap占用大小,覆写entryRemoved,在硬内存放满时和移除最少使用Bitmap

软引用:LinkedHashMap完成该算法,通过复写其removeEldestEntity方法实现

内存大小:各分配1/4

获取总内存大小:

intmenClass=((ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();

关于url处理,存储url的hashCode,避免将来文件名非法,提高查找效率。

硬内存:宁可oom内存不足,也不会释放其中存储的数据;

软内存:一般其中的数据也不会被回收,但是当内存不足时,将释放其中的数据,释放掉后,如果将来还要使用,则先从本地加载,

第二级 本地缓存

同样采取LRU算法管理缓存文件,当SD卡剩余容量不足时,优先删除使用最少图片。

对存储图片根据使用时间生成LRU

第三级:网络读取

如果本地也没有,从网络重新加载.

三级缓存通过httpclient访问网络,先放到硬缓存里面,要读再去加载.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。