我正在使用LazyList版本来加载图像。它使用外部存储,什么都不错。但是为了不向手头有文件浏览器的每个人显示这些文件,我想改用内部存储器,最大内存量是(5mB)。
我应该怎么办?还有其他可能性吗?</p>
我正在使用LazyList版本来加载图像。它使用外部存储,什么都不错。但是为了不向手头有文件浏览器的每个人显示这些文件,我想改用内部存储器,最大内存量是(5mB)。
我应该怎么办?还有其他可能性吗?</p>
AFAIK 每个应用程序的内部存储器没有限制。但是,确实,如果用户在设备上有很多应用程序,则此内存通常会运行得很低,因此您不应该将其用于大(或大量)文件。
我会使用外部存储器(SD卡)并且如果对图像的原始访问是一个问题,那么我会:
InputStream
字节洗牌,并将其传递给BitmapFactory.decodeStream(..)
.内部存储器应该用于您不希望任何人篡改的小事情。其他应用程序和用户可以访问外部存储器(通常是 SD 卡)。附带说明一下,内存是“昂贵的”,用户倾向于卸载占用大量内存的应用程序。
使用外部存储器,只需确保您正在检查它是否确实可用。SD 卡可能丢失、弹出、安装甚至不存在(并非所有 Android 设备都有)。
访问速度各不相同。我知道一些三星设备的外部存储速度相当慢,而它们的内部存储速度非常快。
另一种选择是从网络加载图像。如果您将来需要更改它们,这也将允许您控制它们。将它们安装在 Amazon S3 上每月大约需要几美分。
如果您不希望使用文件浏览器的每个人都看到您的文件,您可以像这样“/sdcard/.hidden”创建一个带有点的文件夹,但是如果他们切换显示隐藏文件和文件夹,那么您就不那么幸运了。
这是关于存储数据的 Android 页面的链接
希望这可以帮助