一、缓存介绍
(一)、Android中缓存的必要性:
1、没有缓存的弊端:流量开销:对于客户端——服务器端应用,从远程获取图片算是经常要用的一个功能,而图片资源往往会消耗比较大的流量。
加载速度:如果应用中图片加载速度很慢的话,那么用户体验会非常糟糕。
那么如何处理好图片资源的获取和管理呢?异步下载+本地缓存
2、缓存带来的好处:1. 服务器的压力大大减小;
2. 客户端的响应速度大大变快(用户体验好);
3. 客户端的数据加载出错情况大大较少,大大提高了应有的稳定性(用户体验好);
4. 一定程度上可以支持离线浏览(或者说为离线浏览提供了技术支持)。
3、缓存管理的应用场景:1. 提供网络服务的应用;
2. 数据更新不需要实时更新,即便是允许3-5分钟的延迟也建议采用缓存机制;
3. 缓存的过期时间是可以接受的(不会因为缓存带来的好处,导致某些数据因为更新不及时而影响产品的形象等)
4、大位图导致内存开销大的原因是什么?1.下载或加载的过程中容易导致阻塞;
大位图Bitmap对象是png格式的图片的30至100倍;
2.大位图在加载到ImageView控件前的解码过程;BitmapFactory.decodeFile()会有内存消耗。(decodeByteArray())
5、缓存设计的要点:1.命中率;
2.合理分配占用的空间;
3.合理的缓存层级。
(二)、加载图片的正确流程是:“内存-文件-网络 三层cac