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