android Lru图片缓存管理方案

本文探讨了Android应用中图片缓存管理的必要性,包括内存管理和磁盘管理。介绍了使用LRU策略的内存缓存实现,通过java.util.LinkedHashMap存储Bitmap并利用其自动移除最老元素的功能。同时,讲解了磁盘LRU管理,采用disklrucache-2.0.1.jar库进行本地文件管理。总结中强调在实际应用中通常优先内存缓存,其次是磁盘,最后网络加载,并推荐使用第三方库如Android-Universal-Image-Loader简化实现。
摘要由CSDN通过智能技术生成



1、图片缓存管理的必要性

        android应用为什么要做一些图片缓存的管理?

       1)内存管理必要性

      android每个进程的虚拟机对内存的管理与其他的一些系统不太一样,比如ios,ios对于内存这块的管理,开发者可以自己手动去释放,但在android中没有提供给开发人员释放内存的功能,android虚拟机只有在内存达到限制   的值时才会主动去回收,应用调用System.gc也不能解决内存问题,gc()函数的作用只是提醒虚拟机:程序员希望进行一次垃圾回收。但是它不能保证垃圾回收一定会进行,而且具体什么时候进行是取决于具体的虚拟机  的,不同的虚拟机有不同的对策。

       应用中我们有大量的图片操作,比如像论坛类型的应用,我们加载过的图片肯定希望下次加载的时候能够更快的使用,如果可以放在内存中,无疑将会是最快的,但内存是有限的,每个进程最大的内存是有限制的,且又因为它的回收机制,所以我们必须要做内存管理,否则会出现oom。

    2)磁盘管理的重要性

        内存是有限的,不可能所有的图片都放在内存中,但需要提升加载速度,节约流量,下载过的图片希望下次继续使用,只能存放在本地磁盘中,android中的磁盘与pc机不太一样,三方应用可以使用的磁盘一个是应用安装目录/data/data/包名,另外就是sdcard目录,但虽然是本地缓存我们也不能缓存过多的文件,如果缓存过多会占用太多的空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值