Java Android对象缓存
正在为Android(SDK 7+)类寻找一个简单的开源非copyleft缓存 其主要目的是存储异步获取的Java Android对象缓存,java,android,caching,Java,Android,Caching,正在为Android(SDK 7+)类寻找一个简单的开源非copyleft缓存 其主要目的是存储异步获取的位图s(因此我不需要在缓存类中包含此功能) 我为此使用了一个弱列表,这自然是一个糟糕的解决方案,番石榴缓存稍微好一点,但仍然不好 缓存最好能够存储任何可序列化的对象,而不仅仅是位图,并且我可以轻松地清除对象添加到缓存时使用的特定标记的对象 最好的选择是像包装sqlite数据库一样获取文件系统缓存。 如果通过Settings>manageapplication>clearcache清除缓存,那
位图
s(因此我不需要在缓存类中包含此功能)
我为此使用了一个弱列表,这自然是一个糟糕的解决方案,番石榴缓存稍微好一点,但仍然不好
缓存最好能够存储任何可序列化的对象
,而不仅仅是位图
,并且我可以轻松地清除对象添加到缓存时使用的特定标记的对象
最好的选择是像包装sqlite数据库一样获取文件系统缓存。
如果通过
Settings>manageapplication>clearcache
清除缓存,那就太好了。我建议您使用广泛使用的droid fu,这是一种经过重构且功能强大的库,名为ignition。
点火库主要由Qype的Matthias Käppler移动开发负责维护。该库有一个缓存框架和RemoteImage小部件(以及许多更有用的类)。此外,它是Maven就绪的,因此很容易添加依赖项。看看缓存javadoc:
android.util.LruCache怎么样?如果您需要支持较旧的平台,只需将其复制到您的项目中即可。编辑:它实际上在compat/support库中 上面建议的普通LruCache是内存缓存。从您的问题来看,您似乎在寻找磁盘缓存解决方案 阅读缓存位图android培训文档的第页 然后查看以下线程中讨论的DiskLruCache实现:
您可以在GitHub上获取源代码 ICSDiskLruCache.java。这是ICS和更高版本的Android中提供的DiskLruCache端口,由谷歌开源,作为IO 2012 Android应用程序的一部分,因此它适用于(至少)API级别7的版本
在找到源点火开关是您要查找的:。它允许您缓存图像、序列化对象。 对于兑现部分,请与
以下是点火支持的API: 您可以根据android官方文档创建自己的图像缓存,该文档不仅提供了代码,还解释了其工作原理: 他们还解释了整个过程,从加载位图、在后台线程中处理位图、缓存位图到显示位图
我不知道;我不认为Android有任何缓存系统。Guava缓存似乎更灵活,我现在更喜欢使用文件系统缓存,而不是运行时缓存,谢谢你的提示。一篇关于android的文章讨论了图像缓存的选项。我支持这篇文章。Jake Wharton是一名优秀的开发人员。该文件可在以下网址找到: