一、三级缓存分为:
1.内存缓存 :优先加载,速度最快
2.本地缓存 :次优先加载,速度较快
3.网络缓存 :最后加载,速度较慢
二、使用图片缓存的原因
1.提高用户体验:如果每次启动都从网络下载图片,势必会加载很慢,图片无法显示,或需要很久才能完全显示,用户体验及其不好
2.节约流量:如果每次加载页面,甚至只是滑动控件浏览就会下载的话,会消耗很多流量,占用网络资源的同时,也会因为应用耗流量而用户数量级受到影响
三、缓存策略
内存作为一级缓存,本地作为二级缓存,网络直接下载为最后,其实严格来说不算缓存。其中内存采用LruCache,其内部通过LinkedhashMap来持有外界缓存对象的强引用;对于本地缓存,我这里为了简单快速理解原理,直接使用的是文件IO操作,而网上也有人采用DiskLruCache (不是Android官网提供,但被官网推荐)。加载图片时,首先采用LRU方式进行寻找,若找不到指定内容,则进行本地搜索,若本地也找不到,向网络发起请求来获取图片。