从数据库缓存小位图

时间:2012-10-29 12:35:40

标签: android android-sqlite android-lru-cache

当我的应用程序连接到服务器时,我会检查哪些图标已过时或缺失 我将这些图标存储在sqllite数据库中,图标不是很大,大约在5-10kb之间。

每次活动开始时,我都会去数据库并获取必要的图标。

但我的许多活动都使用相同的图标,因此我考虑从数据库中获取它们一次,然后将它们缓存到某个地方以加速我的应用程序。

我该怎么做?

我正在阅读此链接:http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html并且他们提到了位图的lruCache。

但这对我想要实现的目标来说有点过分了吗?

2 个答案:

答案 0 :(得分:2)

绝对没有。 LruCache是​​缓存内容的正确方法,它与图像的大小无关。 请记住将缓存创建为单个元素,以便整个应用程序中的任何元素均等地访问它。

不要像有些人建议的那样使用WeakReference。它们在Android上效果不佳,如果您处于搜索气氛中,可以查看YouTube上的Google IO 2012会谈,Android团队自己正在解释为什么不使用WeakReference以及如何正确使用LruCache。

修改

找到了youtube链接 http://www.youtube.com/watch?v=gbQb1PVjfqM&feature=plcp

答案 1 :(得分:1)

您的问题听起来并不像是在询问如何进行内存缓存,但是根本不这样做是否合理。应用程序是否已经感觉图标加载是瓶颈?你的应用程序还在做什么?也许有些网络?有多少活动(在所有活动中)确实有一些图标?每个活动有多少个图标?总共有多少个图标?从@Budius帖子中猜测,在Android上执行内存缓存并不是一个完全直截了当的问题,因此请确保您没有进行不合理的过早优化