Android中的内存缓存

Nav*_*een 3 android

我试图将一个视频存储在内存缓存中,视频完成后将其从缓存中删除.在播放期间,无法从缓存中删除视频文件.

小智 11

每个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;
Run Code Online (Sandbox Code Playgroud)

在普通设备上,每个应用程序至少分配大约4 MB(32/8)32 MB.

在800x480分辨率的设备上填充图像的全屏网格视图将使用大约1.5MB(800*480*4字节).800*480*4 =实际图像尺寸

这将在内存中缓存大约2.5页的图像.在网格视图中,只有2.5个图像存储在缓存中...当您向上和向下滚动最多2.5个图像时,它从缓存中获取图像...当用户移动到第3或第4个图像..清除前两个图像缓存并在缓存中新下载图像.

缓存机制主要用于在网格视图列表中平滑滚动图像.

机制:在列表或网格视图中,第一个图像从网络下载并在用户向下滚动时存储在缓存中.当用户向上滚动时,如果图像可用,则从缓存中获取图像.

Android使用两种机制:

1.LRU Cache(使用的内部应用程序内存)2.Disk Cache(使用的SD卡内存)

磁盘缓存代码是从Android操作系统中提取的.这会在sdcard中存储有限数量的数据.插入数据超出时,删除最近最少使用的文件并存储新文件.

例如:Facebook Android使用磁盘缓存.

在应用程序级别或设置>管理应用程序>应用程序名称中清除缓存内存.

每个应用程序都有自己的Cache Memory,一个应用程序无法访问其他应用程序的缓存.

欲了解更多信息,请访

http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html#disk-cache