每个 Android 应用程序都有其自己的有限内存
// Get max available VM memory, exceeding this amount will throw an
// OutOfMemory exception.
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
// Use 1/8th of the available memory for this memory cache.
final int cacheSize = maxMemory / 8;
在普通设备上,该大小至少约为 4 MB (32/8)
每个应用程序分配 32 MB。
在分辨率为 800x480 的设备上填充图像的全屏网格视图将使用大约 1.5MB(800*480*4 字节)。
800*480*4 = 实际图像尺寸
这将在内存中缓存至少约 2.5 页图像。即,在网格视图中,缓存中仅存储 2.5 个图像...当您上下滚动到 2.5 个图像时,它会从缓存中获取图像...当用户移动到第三个或第四个图像。前两个图像缓存被清除,新的下载图像在缓存中。
缓存机制主要用于网格视图列表中图像的平滑滚动。
机制:
在列表或网格视图中,当用户向下滚动时,首先从网络下载图像并将其存储在缓存中。当用户向上滚动时,将从缓存中获取图像(如果可用)。
Android 使用两种机制:
1.LRU Cache(内部应用内存使用)
2.磁盘缓存(使用sd卡内存)
磁盘缓存代码是从 Android 操作系统中提取的。
这会在 SD 卡中存储有限数量的数据。当插入的数据超过时,最近最少使用的文件将被删除并存储新文件。
前任:
Facebook Android 使用磁盘缓存。
在应用程序级别或设置>管理应用程序>应用程序名称中清除缓存内存。
每个应用程序都有自己的缓存,一个应用程序无法访问其他应用程序的缓存。
欲了解更多信息,请访问:
http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html#disk-cache http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html#disk-cache