【问题标题】:Android Objects CacheAndroid 对象缓存
【发布时间】:2012-06-06 04:11:45
【问题描述】:

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

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

我为此目的使用了一个弱列表,这自然是一个糟糕的解决方案,使用 Guava 缓存稍微好一点,但仍然不是很好。

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

最好的选择是像包装 sqlite 数据库一样获取文件系统缓存。 如果Settings >Manage Application > Clear Cache清空缓存就好了

【问题讨论】:

  • 我不认为有任何适用于 Android 的缓存系统。

标签: java android caching


【解决方案1】:

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

阅读 Caching Bitmaps android 培训文档的Disk Cache

然后看看下面线程中讨论的 DiskLruCache 实现: Using DiskLruCache in android 4.0 does not provide for openCache method

您可以在 GitHub 上获取 DiskLruCache 源代码。

【讨论】:

  • 我支持这个。 Jake Wharton 是一位可靠的开发人员。
【解决方案2】:

android.util.LruCache 怎么样?如果您需要支持旧平台,只需将其复制到您的项目中即可。编辑:它实际上在兼容/支持库中。

【讨论】:

【解决方案3】:

ICSDiskLruCache.java。这是 ICS 和更高版本的 Android 中可用的 DiskLruCache 的一个端口,由 Google 作为 IO 2012 Android 应用程序的一部分开源,因此它适用于(至少)API 级别 7 的版本。

http://code.google.com/p/iosched/source/browse/android/src/com/google/android/apps/iosched/util/ICSDiskLruCache.java查找源

【讨论】:

【解决方案4】:
【解决方案5】:

Ignition 就是您要找的东西:https://github.com/kaeppler/ignition。它允许您缓存图像、序列化对象。 对于兑现部分,请使用ignition-support

这里是点火支持的 API:http://kaeppler.github.com/ignition-docs/ignition-support/apidocs/

【讨论】:

    【解决方案6】:

    我建议您使用广泛使用且之前称为 droid-fu 的重构且非常强大的库,称为点火。 点火库主要由 Qype 的首席移动开发人员 Matthias Käppler 维护。该库有一个缓存框架和 RemoteImage Widget(以及更多有用的类)。而且 Maven 已经准备好了,所以很容易添加依赖。看一下缓存javadoc: http://kaeppler.github.com/ignition-docs/ignition-support/apidocs/

    【讨论】:

      【解决方案7】:

      您可以按照这个官方 android 文档创建自己的图像缓存,该文档不仅为您提供代码,还解释了它的工作原理:

      http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html

      他们还解释了整个过程,从加载位图,在后台线程中处理它们,缓存它们并显示它们

      http://developer.android.com/training/displaying-bitmaps/index.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-25
        • 1970-01-01
        • 2012-10-14
        • 2018-05-27
        • 1970-01-01
        • 2012-08-04
        • 1970-01-01
        相关资源
        最近更新 更多