Android对象缓存


问题内容

寻找一个适用于Android(SDK 7+)类的简单开源非copyleft缓存。

目的主要是Bitmap异步存储所获取的s(因此,我不需要将此功能包含在缓存类中)。

我为此目的使用了weakList,这自然是一个糟糕的解决方案,使用Guava缓存会更好一些,但仍然不够好。

最好是,缓存能够存储任何可序列化的对象Object,而不仅仅是a Bitmap,并且当对象添加到缓存中时,我可以轻松清除对象中使用的某些标记。

最好的选择是获取文件系统缓存,例如包装sqlite数据库。如果缓存将被清除,那就太好了Settings >Manage Application > Clear Cache


问题答案:

上面建议的普通LruCache是​​内存中缓存。从您的问题看来,您正在寻找磁盘缓存解决方案。

阅读缓存位图android培训文档的磁盘缓存

然后看看以下线程上讨论的DiskLruCache实现: 在android4.0中使用DiskLruCache不提供openCache方法

您可以在GitHub上获取DiskLruCache源。