Android缓存分为LruCache 和DiskLruCache两种

由于pc端实现网络下载图片直接下载到本地就可以显示而移动设备不管是Android还是ios设备都是通过流量去网络下载图片,它是按流量是收费的,因此我们在开发中就应该考虑到流量的消耗问题,第一次先去缓存中去读取数据
,如果有直接显示,缓存没有再去手机存储设备读取,存储设备没有再去网络下载,这样就节省了用户的流量。

为了提高用户体验,因此需要在缓存中再备份一份。


缓存采用LRU模式 它的核心思想当缓存满的时候,会优先淘汰那些近期使用的缓存对象
采用LRU两种缓存 LruCache 和 DiskLruCache 第一种是显示内存缓存
第二种是存储设备缓存
通过这两者的完美结合是ImageLoader


LruCache从Android 3.1提供的一个缓存类 通过v4包兼容包可以兼容到早期的版本,目前Android2.2以下的用户很少了,因此只要兼容到Android2.2就行了。主要分为三种
强引用
弱引用
软引用

public class lruCache<K,V>
private final LinkedHashMap<K,V> map;
}
int maxMemory=(int)(Runtime.getRuntime().maxMemory()/1024);
int cacheSiez=maxMemory/8;
mMemoryCache=new LruCache<String key,Bitmap bitmap>(cacheSize){


@Override
protected int sizeOf(String key,Bitmap bitmap){
  
 return bitmap.getRowBytes()*bitmap.getHeight()/1024;
}

};
mMemoryCache.get(key)
添加一个缓存对象
mMemoryCache.put(key,bitmap)
downloadUrlToStream(String urlString,OutputStream os)


DiskLruCache 并不能通过构造方法来创建,他提供了open方法用于创建自身。

public statci DiskLruCache open(File directory,int appVersion,int valueCount,long maxSize){

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KdanMin

你的认可将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值