1、图片缓存管理的必要性
android应用为什么要做一些图片缓存的管理?
1)内存管理必要性
android每个进程的虚拟机对内存的管理与其他的一些系统不太一样,比如ios,ios对于内存这块的管理,开发者可以自己手动去释放,但在android中没有提供给开发人员释放内存的功能,android虚拟机只有在内存达到限制 的值时才会主动去回收,应用调用System.gc也不能解决内存问题,gc()函数的作用只是提醒虚拟机:程序员希望进行一次垃圾回收。但是它不能保证垃圾回收一定会进行,而且具体什么时候进行是取决于具体的虚拟机 的,不同的虚拟机有不同的对策。
应用中我们有大量的图片操作,比如像论坛类型的应用,我们加载过的图片肯定希望下次加载的时候能够更快的使用,如果可以放在内存中,无疑将会是最快的,但内存是有限的,每个进程最大的内存是有限制的,且又因为它的回收机制,所以我们必须要做内存管理,否则会出现oom。
2)磁盘管理的重要性
内存是有限的,不可能所有的图片都放在内存中,但需要提升加载速度,节约流量,下载过的图片希望下次继续使用,只能存放在本地磁盘中,android中的磁盘与pc机不太一样,三方应用可以使用的磁盘一个是应用安装目录/data/data/包名,另外就是sdcard目录,但虽然是本地缓存我们也不能缓存过多的文件,如果缓存过多会占用太多的空间。