前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架。技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实现方案不能满足项目的需求改用Afinal,由于Afinal不再维护而选择了师出同门的Xutils,中 ...
分类:
移动开发 时间:
2016-06-04 10:27:03
阅读次数:
288
前言: 上篇我们总结了Bitmap的处理,同时对比了各种处理的效率以及对内存占用大小。我们得知一个应用如果使用大量图片就会导致OOM(out of memory),那该如何处理才能近可能的降低oom发生的概率呢?之前我们一直在使用SoftReference软引用,SoftReference是一种现在 ...
分类:
移动开发 时间:
2016-06-01 21:15:23
阅读次数:
305
Reference是java中的特殊引用类。描述的是特殊作用(主要是关于垃圾回收对象)的引用。 它有3个子类: 1.SoftReference; 2.WeakReference 3.PhantomReference 先看thinking in java 中的实例 output: Just creat ...
分类:
编程语言 时间:
2016-05-24 20:59:20
阅读次数:
191
Java开发中存在四种引用,它们分别是:
强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,
那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。
软引用(SoftReference)如果一个对象只具有软引用,则内存空间足够,
垃圾回...
分类:
编程语言 时间:
2016-05-13 00:12:58
阅读次数:
205
首先大家应该都知道Java从1.2起提供了四种引用类型,他们分别是其引用(StrongReference),软引用(SoftReference),弱引用(WeakReference)以及PhantomReference(虚引用),他们被GC回收的可能性从大到小排列。如下图可以看到Reference是继承自Object,而又有三个直接的子类,就是我们要介绍的几个类了。另外还有一个Reference...
分类:
编程语言 时间:
2016-05-07 09:27:01
阅读次数:
230
在做Android的开发的时候,在ListView 或是 GridView中需要加载大量的图片,为了避免加载过多的图片引起OutOfMemory错误,设置了一个图片缓存列表 Map<String, SoftReference<Bitmap>> imageCache , 并对其进行维护,在图片加载到一 ...
分类:
移动开发 时间:
2016-04-17 16:01:02
阅读次数:
184
https://www.ibm.com/developerworks/cn/java/j-lo-langref/ ...
分类:
其他好文 时间:
2016-04-15 21:43:20
阅读次数:
161
前言:
fresco是facebook主导的一个开源图片缓存库,从它提供的示例程序comparison来看,
fresco貌似比其他的几个目前android主流的图片缓存库(glide,picasso,uil等)更快更节省内存。接下来就看看它到底是如何做到的。
一、背景:
1:lru与SoftReference那些年的爱恨情仇:很久很久以前,android的内存缓存还用...
分类:
其他好文 时间:
2016-03-31 14:47:30
阅读次数:
262
Java 对象的引用方式有如下四种,这四种方式主要是为了给垃圾回收提供更灵活的操作: 1、强引用,最常见的引用方式,当一个对象被一个或一个以上的引用变量引用时,它处于可达状态,这时不会被垃圾回收器回收。 2、软引用(SoftReference),通常用于内存敏感的程序中,当一个对象只有软引用时,当系 ...
分类:
编程语言 时间:
2016-03-28 02:10:44
阅读次数:
268
1、采用线程池 2、内存缓存+文件缓存 3、内存缓存中网上很多是采用SoftReference来防止堆溢出,这儿严格限制只能使用最大JVM内存的1/4 4、对下载的图片进行按比例缩放,以减少内存的消耗 具体的代码里面说明。先放上内存缓存类的代码MemoryCache.java: public cla
分类:
移动开发 时间:
2016-03-07 16:22:31
阅读次数:
251