您的位置:首页 > 移动开发 > Android开发

[置顶] android图片的三级缓存原理demo,解决图片加载OOM的问题,能加载上万张图片

2017-04-06 15:39 441 查看
一直以来不管是listview还是recycleview加载过多图片都会出现OOM异常,对于这个问题在开发中和面试中都会被提到,,,.对与怎么解决这种问题,就要引入图片的三级缓存的问题了,图片的三级缓存原理很简单,主要分为三部分:  

1.网络加载    


2  .SD卡加载也就是本地加载图片  


3. 内存加载.-----------过程如下图....



首先分析一下图片过程:

1.界面显示图片,此时的图片首先就要从内存中加载,如果内存中有图片的缓存就直接加载,如果没有就要到第二步,

2.从本地获取,这时如果本地没有就要到第三步,

3.从网络中加载图片........大概的过程就是这样...

注意:

对于图片的三级缓存非常重要的一点就是必须要用到 "软引用",对于软引用这里我就不多说了,不熟悉可以到百度去查.

为什么需要软引用的是因为我门的图片的bitmap全部保存在手机app内存中,如果内存不够用当前程序最先释放的内存就是软引用所占的内存空间,,,所以软引用不会让我们的应用程序包OOM异常.....



代码就不贴了,代码太多最后我把源码demo发到这个网站:    http://www.xiufm.com/thread-15415-1-1.html
可以直接去下载.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: