android中缓存,软应用的使用,时候加载图片
2014-11-29 16:34
162 查看
软引用:只要有足够的内存,就一直保持对象,直到发现内存吃紧且没有Strong Ref时才回收对象。
内存缓存技术:在Android中,有一个叫做LruCache类专门用来做图片缓存处理的。它有一个特点,当缓存的图片达到了预先设定的值的时候,那么近期使用次数最少的图片就会被回收掉。步骤:
(1)要先设置缓存图片的内存大小,我这里设置为手机内存的1/8, 手机内存的获取方式:int MAXMEMONRY = (int) (Runtime.getRuntime() .maxMemory() / 1024);
(2)LruCache里面的键值对分别是URL和对应的图片
(3)重写了一个叫做sizeOf的方法,返回的是图片数量。
网上有很多人使用软引用加载图片的多 ,但是现在已经不再推荐使用这种方式了:
(1)因为从 Android 2.3 (API Level 9)开始,垃圾回收器会更倾向于回收持有软引用或弱引用的对象, 这让软引用和弱引用变得不再可靠。
(2)另外,Android 3.0 (API Level 11)中,图片的数据会存储在本地的内存当中, 因而无法用一种可预见的方式将其释放,这就有潜在的风险造成应用程序的内存溢出并崩溃, 所以我这里用得是LruCache来缓存图片,当存储Image的大小大于LruCache设定的值,系统自动释放内存,这个类是3.1版本中提供的,如果你是在更早的Android版本中开发,则需要导入android-support-v4的jar包。
下面用一个例子说明一下,主要是加载网上图片,先去缓存或软应用找,再去sd找,如果没有就去网上下载图片,思路就是这样,这是demo下载地址,注释很详细
http://download.csdn.net/detail/u013947002/8207643
内存缓存技术:在Android中,有一个叫做LruCache类专门用来做图片缓存处理的。它有一个特点,当缓存的图片达到了预先设定的值的时候,那么近期使用次数最少的图片就会被回收掉。步骤:
(1)要先设置缓存图片的内存大小,我这里设置为手机内存的1/8, 手机内存的获取方式:int MAXMEMONRY = (int) (Runtime.getRuntime() .maxMemory() / 1024);
(2)LruCache里面的键值对分别是URL和对应的图片
(3)重写了一个叫做sizeOf的方法,返回的是图片数量。
网上有很多人使用软引用加载图片的多 ,但是现在已经不再推荐使用这种方式了:
(1)因为从 Android 2.3 (API Level 9)开始,垃圾回收器会更倾向于回收持有软引用或弱引用的对象, 这让软引用和弱引用变得不再可靠。
(2)另外,Android 3.0 (API Level 11)中,图片的数据会存储在本地的内存当中, 因而无法用一种可预见的方式将其释放,这就有潜在的风险造成应用程序的内存溢出并崩溃, 所以我这里用得是LruCache来缓存图片,当存储Image的大小大于LruCache设定的值,系统自动释放内存,这个类是3.1版本中提供的,如果你是在更早的Android版本中开发,则需要导入android-support-v4的jar包。
下面用一个例子说明一下,主要是加载网上图片,先去缓存或软应用找,再去sd找,如果没有就去网上下载图片,思路就是这样,这是demo下载地址,注释很详细
http://download.csdn.net/detail/u013947002/8207643
相关文章推荐
- Android应用架构之Retrofit使用 RxJava 详解 jsoup Android 平滑图片加载和缓存库 Glide 使用详解
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- android中图片加载使用LruCache缓存到内存或外部文件的功能
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Android 应用开发 之使用LruCache和DiskLruCache来在内存和SD卡中缓存图片
- 使用Android新式LruCache缓存图片,基于线程池异步加载图片
- Android 应用开发 之使用LruCache和DiskLruCache来在内存和SD卡中缓存图片
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- android使用LruCache对listview加载图片时候优化处理
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Android 异步加载图片,使用LruCache和SD卡或手机缓存
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅