我正在使用LazyList版本来加载图片。它使用外部存储,还不错。但是为了不向手持文件浏览器的每个人显示文件,我认为使用内部存储器,最大内存量为(5mB)。
我该怎么办?还有其他可能性吗?
答案 0 :(得分:4)
AFAIK每个应用程序的内部内存没有限制。但是,如果用户在设备上拥有大量应用程序,那么这个内存通常会运行得很低,所以你不应该将它用于大(或很多)文件。
我会使用外部存储器(SD卡)和IF原始访问图像是一个问题,然后我会:
InputStream
版本进行字节改组,并将其传递给BitmapFactory.decodeStream(..)
。答案 1 :(得分:2)
内存应该用于你不希望任何人篡改的小东西。外部存储器(通常是SD卡)可以被其他应用程序和用户访问。 作为旁注,内部存储器“昂贵”,用户倾向于卸载占用大量内部存储器的应用程序。
使用外部存储器,只需确保检查它实际上是否可用。 SD卡可能丢失,弹出,安装甚至不存在(并非所有Android设备都有)。
访问速度各不相同。我知道有些三星设备的外部存储速度相当慢,而内部存储速度非常快。
另一种选择是从网络加载图像。如果您将来需要更改它们,这也可以让您控制它们。在Amazon S3上使用它们每月花费大约几美分。
答案 2 :(得分:1)
如果你不希望每个拥有文件浏览器的人都看到你的文件,你可以在它之前创建一个带有点的文件夹,如“/sdcard/.hidden” 但如果他们切换显示隐藏文件和文件夹你就不那么幸运了。
heres指向存储数据的Android页面链接
希望这有帮助
答案 3 :(得分:1)
只是一个脚注(我目前没有足够的声誉来添加评论)。 @WinOrWin显然你所指的线程是在谈论“内存”,RAM,而这个线程谈论“存储空间”(虽然通俗地说人们可能将其称为“内部/外部存储器”)。它们不是同一件事。 (例如,硬盘空间和内存之间的基本区别)。