当内存不足时,LruCache是​​否会释放条目?

时间:2014-04-03 11:58:16

标签: android

我无法完全理解LruCache的内存管理组件。

从某种意义上说,我期待它在iOS平台上充当NSCache(最近刚从该操作系统中获取了一些知识)。

如果应用程序内存不足,LruCache是​​否会发布条目?

或者,如果我设置LruCache的最大条目/大小,那么它将占用空间并且在达到该条目/大小之前不会释放它?

我不想要正在构建的第三方库来取消用户的必要资源。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

这是来自2012 Google I / O的视频,其中解释了LRU-Caches(3:00)。他进一步讨论了操作系统在低内存中所做的事情:

http://www.youtube.com/watch?v=gbQb1PVjfqM

我不认为操作系统会驱逐低内存的缓存条目,因为它会从它(应用程序)可能需要的应用程序中窃取资源。操作系统可能不知道应用程序使用缓存中的哪些项目。它会杀死最近最少使用和/或内存消耗最高的后台应用程序。
顺便说一下:如果内存不足,可以通过实现onTrim()回调来主动帮助操作系统调整LRU的大小。您可以在YouTube视频中找到更多信息,并在此处:

http://developer.android.com/training/articles/memory.html#ReleaseMemoryAsTight

希望这有助于:)

相关问题