如何检查Android的LruCache中可用的内存?

时间:2014-11-14 07:14:23

标签: android caching memory xamarin.android out-of-memory

我想使用内存缓存(LruCache)而不是DiskLruCache来缓存图像。我对android中的图像缓存有一些疑问。

如何检查Lrucache中的可用内存大小?

当缓存请求越过Lrucache中的可用内存时会发生什么?

LruCache对象是否保留在dalvik堆内存中?或缓存完成保存在堆内存中?

1 个答案:

答案 0 :(得分:1)

回答第一个问题:

    private LruCache<String, Bitmap> mMemoryCache;
    //...
    ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    int availMemInBytes = am.getMemoryClass() * 1024 * 1024;

回答第二个问题:

将从列表中删除最近最少使用的对象。将移除一个或多个对象,直到有足够的空间放置新对象。

关于第三个问题我认为我迟到了,因为Dalvik不再用于Android&gt; 4.4.2。也许这个视频可以帮助弄清楚新ART会发生什么 https://www.youtube.com/watch?list=PLOU2XLYxmsIJDPXCTt5TLDu67271PruEk&t=47&v=R5ON3iwx78M

我希望它会有所帮助。

相关问题