在android上存储图像

在android上存储图像,android,database,image,Android,Database,Image,我正在开发一个小型Android数据库应用程序。与数据库中的记录相关联的是许多图像(图像分辨率可能与设备上的屏幕相同),每个记录最多可以有20个图像。哪里是存储图像的最佳位置。我想要么在数据库本身,要么在SD卡上。我对Android非常陌生,但还不确定自己在做什么。据我所知,将图像本身放入数据库(作为一个blob)是可能的,但这不是最佳做法 你说的图像有多大?你提到了屏幕的分辨率,但是通过压缩,它们可能足够小了 如果它们相当小,考虑使用电话的内部缓存(从上下文中使用GETCache Dead()

我正在开发一个小型Android数据库应用程序。与数据库中的记录相关联的是许多图像(图像分辨率可能与设备上的屏幕相同),每个记录最多可以有20个图像。哪里是存储图像的最佳位置。我想要么在数据库本身,要么在SD卡上。我对Android非常陌生,但还不确定自己在做什么。

据我所知,将图像本身放入数据库(作为一个blob)是可能的,但这不是最佳做法

你说的图像有多大?你提到了屏幕的分辨率,但是通过压缩,它们可能足够小了

如果它们相当小,考虑使用电话的内部缓存(从上下文中使用GETCache Dead()找到)。这还增加了允许用户从应用程序菜单中删除缓存的附加功能,并且您的图像对应用程序是私有的。Android文档建议在内部缓存上设置大约1MB的上限


如果它们太大而无法存储在内部缓存中,SD卡可能是您唯一的选择。这样做的缺点是其他应用程序可以看到这些图像,它们可以被删除、删除、重命名等。你不能保证它们会像你离开它们时那样。

在我的应用程序中,我被迫将图像作为blob存储在SQLite中。SQLite中的Blob大小在理论上限制为2 Gig,但是手动大小的Blob。所以我把存储的图像分块。从性能的角度来看,一切正常

不管怎么说,我很确定用DB存储的图像比其他奇特的方式更吸引人。例如,没有人能预测SD卡的容量,甚至它是否在机上