soc*_*qwe 5 sqlite android caching image
我想知道在sqlite数据库中将图像存储为BLOB是一个好主意吗?有没有人有表现 - 存储图像(blob)的经验.
我的Android应用程序将是一个小的,它将需要处理20到100个图像(100 kb到每个图像1MB).最坏的情况:我想说,我的数据库可以达到100 MB的大小.这对数据库性能有重大影响吗?平均情况:我猜我的应用程序的普通用户有40张图像,每张图像200 kb,因此数据库的大小约为8 MB.顺便说一句.当然数据库还存储其他"正常"数据,所以它不仅仅是图像数据库:)
将存储在存储(内部或SD卡)上的图像的路径存储为更好的方法吗?我想从数据库中检索图像文件路径并从文件中打开并加载图像会稍慢一点(但不是很重要,因为我需要一次只加载两个图像).
第二个问题:如果我将使用第二种方法(在数据库中存储图像文件的路径并加载图像文件):磁盘缓存(DiskLruCache)在这种情况下是否有用?它会带来显着的性能提升吗?我的理解是磁盘缓存会存储位图(而不是编码的jpg或png),因此光盘缓存会直接从存储加载位图,我的应用程序将节省解码图像的时间(jpg或png).那是对的吗?顺便说一句.在"数据库方法"中,我将存储已经解码为位图的图像.所以在我看来它与光盘缓存类似,不是吗?
编辑:我忘了告诉你,我需要将图像存储在设备上.我不是在谈论缓存图像,例如我从Web服务中检索到的图像......
我的猜测是,如果您在其中存储那么多信息,数据库会变得非常慢,尤其是当您检索图像本身时。
另一方面,据我所知,每个用户在安装应用程序后都会下载与他相关的图像。这是使用另一个 SO 用户在几天前问的问题中向我推荐的库的完美场所:Universal Image Downloader。这是我谈到的主题的链接。
该库使用磁盘缓存,但为您抽象了所有复杂性(希望我还没有尝试过,但看起来很有希望)。