Android用LruCache来取代原来强引用和软引用实现内存缓存,因为据说自2.3以后Android将更频繁的调用GC,导致软引用缓存的数据极易被释放。LruCache使用一个LinkedHashMap简单的实现内存的缓存,没有软引用,都是强引用。如果添加的数据大于设置的最大值,就删除最先缓存的...
分类:
系统相关 时间:
2015-03-04 18:45:40
阅读次数:
179
首先,他采用了强引用(StrongReference)和软引用(SoftReference)来保存下载的图片(bitmap),具体做法是:StrongReference来保存一定容量的图片(bitmap),当超过这个容量的时候就将其移入SoftReference来保存.
bitmap的加载实际上采用了AsyncTask的多线程方式, 所以是很可能出现多个修改并发操作的.所以采用ConcurrentHashMap最合适.ConcurrentHashMap采用了锁分离技术可以很好的解决多操作并发进行,并且也是...
分类:
移动开发 时间:
2015-02-28 18:47:33
阅读次数:
169
当程序创建对象、数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区,
当我们创建的对象不再被引用时,所在的内存就变成了垃圾,最后等待垃圾回收机制进行回收,Java的垃圾回收机
制具有以下特征:
1、垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源,比如数据库连接、网络IO等资源。
2、程序无法精确控制垃圾回收的运行,...
分类:
编程语言 时间:
2015-02-20 22:03:35
阅读次数:
204
一、前言 JDK1.2以前只提供一种引用类型——强引用Object obj = new Object();。而JDK1.2后我们多另外的三个选择分别是软引用java.lang.ref.SoftReference、弱引用java.lang.ref...
分类:
编程语言 时间:
2015-02-02 19:40:26
阅读次数:
281
每当碰到一些大图片的时候,我们如果不对图片进行处理就会报OOM异常,这个问题曾经让我觉得很烦恼,后来终于得到了解决,那么现在就让我和大家一起分享一下吧。这篇博文要讲的图片缓存机制,我接触到的有两钟,一种是软引用,另一种是内存缓存技术。先来看下两者的使用方式,再来作比较。除了加载图片时要用到缓存处理,...
分类:
系统相关 时间:
2015-02-02 17:21:12
阅读次数:
294
1 Java中的SoftReference 2 即对象的软引用。如果一个对象具有软引用,内存空间足够,垃 圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高 速缓存。使用软引用能防止内存泄露,增强程序的健壮...
分类:
其他好文 时间:
2015-02-02 15:28:37
阅读次数:
124
在上一篇专题Android开发之图片处理专题(一):利用软引用构建图片高速缓存中我们讲述了如何利用软引用技术构建高速缓存。那么想要用到图片,首先得有图片的来源。一般而言,一个应用的图片资源都是从服务器处获得的。今天,我们利用Android开发之网络请求通信专题(二):基于HttpClient的文件上传下载里面封装好的httpUtils来实现图片的下载,然后加载到本地并使用,以一个listView为...
分类:
移动开发 时间:
2015-02-01 09:38:31
阅读次数:
171
在Android开发中,图片处理是一个难点。对于大量的图片处理,一不小心就会出现OOM的错误。那么,构建缓存,就是非常必要的一个手段。利用软引用构建缓存,只是其中步骤之一,我们来看看一般情况下,图篇处理的流程。
一般而言,图片的处理流程大致如上,之前所说的Xutils的原理,也如此。今天,我们就先讲讲如何利用软引用技术来构建高速缓存。
一、对象的四种引用
在JDK 1.2以前的版...
分类:
移动开发 时间:
2015-01-30 22:51:39
阅读次数:
284
在看次文章前建议先阅读一下郭霖打什么的blog http://blog.csdn.net/guolin_blog/article/details/17482095一共四篇,仔细看。
下面是我对它里面使用的imageloader 中的cache 进行的一下扩充:
新建一个bitmapcaache 类继承自android supportV4提供的LruCache (主要包括硬引用,软引用,以及...
分类:
其他好文 时间:
2015-01-21 13:35:24
阅读次数:
390
Java 7之基础 - 强引用、弱引用、软引用、虚引用 - 聚沙成塔、水滴石穿 - 博客频道 - CSDN.NET1、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:[java] view plaincopyprint?.....
分类:
编程语言 时间:
2015-01-12 16:23:53
阅读次数:
285