【Android开发新手的学习笔记】使用LruCache对ListView进行优化

本文介绍了Android新手如何使用LruCache优化ListView,通过缓存数据减少内存消耗和重复请求。LruCache是一个内置的HashMap,采用近期最少使用算法。在创建LruCache时,需要设置合适的缓存大小,并重写sizeOf()方法计算对象大小。缓存图片时,首先检查内存缓存,若存在则直接显示,否则从网络获取并存入缓存。此外,还提到了一级内存缓存和二级本地硬盘缓存的概念。
摘要由CSDN通过智能技术生成

Lru算法即近期最少使用算法。

Android提供LruCache类来实现这个缓存算法,在内存空间足够的情况下将内容存储到内存中,当内存空间不足时,将近期最少使用的空间腾出,用来存储其它内容。


LruCahce本质上是一个HashMap,所以能够使用一些HashMap类的方法。

我的理解是,在浏览ListView时,将需要缓存的数据存到LruCache这个HashMap中,在需要用到的时候,在LruCache这个HashMap中取出来。只不过LruCache这个HashMap还带有近期最少使用算法这个功能。


在上一篇文章里,用异步加载的方式实现了一个图文混排的ListView,如果不将获取到的图片缓存下来,那使用的过程将会消耗很多流量去重复获取数据,所以现在使用LruCache类将数据缓存下来。


使用LruCache类,在new一个LruCache时,要指定LruCache的缓存大小Maxsize。可以先用Runtime类的getRuntime().getMaxMemory();方法来获取当前可用的空间,然后再指定缓存空间大小,这里的MaxSize=MaxMeory/4;

同时,还要重写sizeOf()方法,这个方法在数据存入缓存时调用,计算出存入的数据的大小,这里存入的是图片,所以这个方法应该返回的是图片的大小。


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值