我想使用内存缓存(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
希望对您有所帮助。