volley2----------内存缓存和LruCache
来源:互联网 发布:兵营升级数据 率土之滨 编辑:程序博客网 时间:2024/05/21 10:10
内存缓存
- 1.内存缓存的核心:
- 存:就有很多的考虑
- 取:只需要知道唯一的key就可以了
- 2.选择什么样的
存储结构/容器/集合
?Map<String,Bitmap> - 3.4种引用级别什么意思?
- 强引用:我们平时使用的集合(arraylist,hashmap,hashset),即使内存oom,也不会去回收对象;
- 软应用:使用SoftRefrence去包装一个对象,内存不足的时候去回收对象,尽量保证不oom
- 弱应用:基本没有用过
- 虚引用:形同虚设,同样没有用过
- 4.
删除策略/算法
, - 我们定义的
存储结构
,不能继续缓存图片的时候.需要进行清理 - LRU:最近最少使用,Least Recently Used,其实就是按照访问顺序排序
- 删除使用次数最少的:
- 删除占用体积最大:
- 5. 在很久之前(2,3年)前做图片的缓存基本都是使用软应用,但是在2.3之后.google文档明确指出了软应用做缓存的一些不足.建议我们使用LruCache.class;
- 6.举例说明
删除策略
的使用场景 - LRU:电影海报图删除策略-->和时间有关系(时效性)
- 删除使用次数最少的:-->和时间没有关系而且大小差不多
- 比如办公软件的使用 就是给对象计数 然后最后去计算排序 去把最少进行移除掉
- 删除占用体积最大:空间比较宝贵的情况
LruCache的使用:
一个工具方法,提供了基于
Lru缓存策略
的强引用
的内存缓存,存储结构使用的LinkedHashmap
LinkedHashmap使用
- LinkedHashmap和Hashmap区别:在构造方法里面多了3个参数
- 3个参数的意义:
- initialCapacity:初始化容器大小 16
- loadFactor:负载因子
- accessOrder:
- true:LinkedHash内部会排序-->按照访问顺序排序-->这个也是为什么LruCache使用LinkedHashmap做存储结构的原因
- false:按照插入顺序去排序
LruCache在什么地方可以找到?
- 在高版本的sdk里面有.
- 在v4包中有提供.
LruCache的使用
- 告知缓存的具体大小
- 覆写sizeOf方法,具体大小需要和我们定义的maxsize单位统一
maxsize需要和sizeof返回的单位一样 都是byte:
long max=Runtime.getRuntime().maxMemory()/1024/1024; int size=(int) (max/8); LinkedHashMap<K, V> 底层内置的就是一个 双向链表 lru = new LruCache<String, Bitmap>(size){ 从写这个方法 size的变化 @Override protected int sizeOf(String key, Bitmap value) { 从写方法来衡量每一张图片的大小 默认返回的是图片数量 超过的话会 移除队列的内容 return value.getByteCount() ; } };
0 0
- volley2----------内存缓存和LruCache
- 内存缓存和LruCache
- Android缓存机制Lrucache内存缓存和DiskLruCache磁盘缓存
- 内存缓存技术LruCache
- Android内存缓存LruCache
- 内存缓存与LruCache
- 内存缓存LruCache算法
- Android 内存缓存 LruCache
- 内存缓存LruCache详解
- 内存缓存LruCache详解
- Android LruCache(内存缓存)
- Android LruCache(内存缓存)
- android网络相册(带磁盘缓存DiskLruCache 和内存缓存LruCache)
- 使用LruCache和DiskLruCache实现内存磁盘二级图片缓存
- 内存缓存LruCache实现原理
- 内存缓存LruCache源码解析
- 内存缓存LruCache实现原理
- 内存缓存LruCache实现原理
- 结构化编程思想、运算符
- 网络过程及请求结果流转string及解析
- @RequestBody和@ModelAttribute注解
- 它是不确定的
- PHP中include和require的区别详解
- volley2----------内存缓存和LruCache
- POJ1679-The Unique MST(次小生成树+最小瓶颈路 )
- MyBatis搭建和增删改查(入门)
- hdu 4946 Area of Mushroom 凸包
- TCP/IP三次握手与四次挥手
- volley3 网络请求的取消
- javaScript初探正则表达式
- PAT 1011
- 总线的控制方式