【文件属性】:
文件名称:android 网络图片双缓存
文件大小:1.48MB
文件格式:ZIP
更新时间:2017-09-24 10:59:19
安卓 图片缓存 内存
Android每次加载图片很浪费时间。所以设计了一个图片缓存技术来解决每次android手机加载图片的问题
内存的读取速度是最快的,然后是文件的读取速度,最后是网络资源的读取
既然内存的读取时间最快,我们好好利用内存资源。将内存再分两层缓存
强引用缓存不会轻易被回收,来保存常用数据,不常用的资源放入软引用缓存中。
对于硬引用和软引用的介绍:
⑴强引用(StrongReference)
强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。
⑵软引用(SoftReference)
如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存
1,对于强引用和软引用的使用,我们首先去强引用缓存中去找图片资源,当没有发现时,就去软引用缓存中。当强引用的超额时,将最后使用的资源放入软引用缓存中,使用到软引用的资源时 ,则将资源重新放回强引用缓存池中。
2,内存缓存池中找不到,就去文件中查找,
3,再找不到就只好去网络上下载了,下载到以后,分别将资源放入文件缓存和内存缓存中
【文件预览】:
zf_img
----bin()
--------classes.dex(713KB)
--------res()
--------zf_img.apk(283KB)
--------dexedLibs()
--------classes()
--------resources.ap_(39KB)
--------AndroidManifest.xml(969B)
----res()
--------drawable-ldpi()
--------drawable-hdpi()
--------drawable-xhdpi()
--------drawable-xxhdpi()
--------values()
--------drawable-mdpi()
--------layout()
----proguard-project.txt(781B)
----ic_launcher-web.png(50KB)
----assets()
----gen()
--------com()
----android 网络图片双缓存.docx(15KB)
----src()
--------com()
----.project(842B)
----.classpath(475B)
----project.properties(562B)
----AndroidManifest.xml(969B)
----libs()
--------android-support-v4.jar(633KB)
网友评论
- 就是代码没见效果,,,,这也行???
- 很不错,很容易理解。
- 感觉一般,没期望的那么好
- 非常不错,这么好的代码应该收费的
- 代码非常好用
- 很好,很强大!
- 很好的demo,值得学习。
- 很好用处理的很好
- 百度双缓存一摸一样的代码,自己测过没有?你这缓存在自己代码里根本没用的到,你一直不停在new cache,怎么起到缓存的作用?