我想使用内存缓存 (LruCache) 而不是 DiskLruCache 来缓存图像。我对 android 中的图像缓存有一些疑问。
如何查看 Lrucache 中的可用内存大小?
当缓存请求越过 Lrucache 中的可用内存时会发生什么?
LruCache 对象是否保留在 dalvik 堆内存中?还是将完成的缓存保存在堆内存中?
最佳答案
第一个问题的答案:
private LruCache<String, Bitmap> mMemoryCache;
//...
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
int availMemInBytes = am.getMemoryClass() * 1024 * 1024;
第二个答案:
最近最少使用的对象将从列表中删除。一个或多个对象将被删除,直到有足够的空间放置新对象。
关于第三个问题,我想我迟到了,因为 Dalvik 不再用于 Android > 4.4.2。也许这个视频可以帮助弄清楚新 ART 会发生什么 https://www.youtube.com/watch?list=PLOU2XLYxmsIJDPXCTt5TLDu67271PruEk&t=47&v=R5ON3iwx78M
希望对您有所帮助。
关于android - 如何查看android的LruCache中的可用内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26924810/