1

我正在使用LazyList版本来加载图像。它使用外部存储,什么都不错。但是为了不向手头有文件浏览器的每个人显示这些文件,我想改用内部存储器,最大内存量是(5mB)。

我应该怎么办?还有其他可能性吗?</p>

4

3 回答 3

5

AFAIK 每个应用程序的内部存储器没有限制。但是,确实,如果用户在设备上有很多应用程序,则此内存通常会运行得很低,因此您不应该将其用于大(或大量)文件。

我会使用外部存储器(SD卡)并且如果对图像的原始访问是一个问题,那么我会:

  1. 加密文件。这很重,它会减慢速度。
  2. 打乱文件。这涉及到字节的移动,例如将前 1000 个字节移动到文件的末尾等。您可以创建自己的版本进行InputStream字节洗牌,并将其传递给BitmapFactory.decodeStream(..).
于 2012-01-11T08:15:28.977 回答
2

内部存储器应该用于您不希望任何人篡改的小事情。其他应用程序和用户可以访问外部存储器(通常是 SD 卡)。附带说明一下,内存是“昂贵的”,用户倾向于卸载占用大量内存的应用程序。

使用外部存储器,只需确保您正在检查它是否确实可用。SD 卡可能丢失、弹出、安装甚至不存在(并非所有 Android 设备都有)。

访问速度各不相同。我知道一些三星设备的外部存储速度相当慢,而它们的内部存储速度非常快。

另一种选择是从网络加载图像。如果您将来需要更改它们,这也将允许您控制它们。将它们安装在 Amazon S3 上每月大约需要几美分。

于 2012-01-11T08:09:24.297 回答
1

如果您不希望使用文件浏览器的每个人都看到您的文件,您可以像这样“/sdcard/.hidden”创建一个带有点的文件夹,但是如果他们切换显示隐藏文件和文件夹,那么您就不那么幸运了。

这是关于存储数据的 Android 页面的链接

希望这可以帮助

于 2012-01-11T08:08:53.407 回答