安卓中的内存缓存

5

我正在尝试将一个视频存储在内存缓存中,当视频播放完成后,它将从缓存中删除。在播放该视频文件期间,不能从缓存中删除该文件。


你想做什么?缓存位图吗? - Raghunandan
通过问题2,查看:https://dev59.com/bGgu5IYBdhLWcg3w6rQ9 - Castiblanco
你需要更好地解释你的问题。你想要缓存什么?位图?文件?事务?JSON?你想在哪里缓存它:在RAM内存中还是永久性地缓存? - Budius
@Raghunandan,我正在尝试存储一个视频,并且在完成后应该删除该视频。 - Naveen
@ Naveen,请编辑您的问题并清楚地解释您打算做什么以及您面临的问题是什么? - Raghunandan
@Budius,我正在尝试存储一个视频,并且在完成后应该删除该视频。 - Naveen
2个回答

12
每个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;

在普通设备上,每个应用程序分配32MB(32/8)的最小空间。
在分辨率为800x480的设备上,一个满屏的图像网格视图大约会使用1.5MB(800*480*4字节)。
这将在内存中缓存至少2.5页的图像。也就是说,在您的网格视图中,只有2.5张图片被存储在缓存中...当您上下滚动到2.5张图片时,它从缓存中获取图片...当用户移动到第3或第4张图片时,前两张图片的缓存被清除并且新下载的图片被缓存在其中。
缓存机制主要用于列表或网格视图中的平滑滚动图像。
机制: 在列表或网格视图中,首先从网络下载图像并存储在缓存中,随着用户向下滚动,当用户向上滚动时,如果可用,则从缓存中获取图像。
Android使用两种机制:
1.LRU缓存(使用内部应用程序内存) 2.磁盘缓存(使用sdcard内存)
磁盘缓存代码来自Android操作系统。 它将有限数量的数据存储在sdcard中。当插入数据超过时,最近最少使用的文件被删除,并存储新文件。

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

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

每个应用程序都有自己的缓存内存,一个应用程序不能访问其他应用程序的缓存内存。

欲了解更多信息,请访问:

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


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接