【问题标题】:How to check the memory available in LruCache of android?如何检查android的LruCache中可用的内存?
【发布时间】:2015-01-11 12:55:39
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你想缓存位图(ImageView)吗?
  • 嗨 blaze,是的,我想缓存位图。
  • 就像我之前说的,我不了解 LruCache。但是,您可以使用自动使用缓存的 Picasso 或 Universal Image Loader 库
  • 查看 volley 的代码,他们有 MemoryCache 和 DiskLruCache (developer.android.com/training/volley/index.html) 的实现
  • LruCache 是否在没有空间用于另一个位图缓存时清除内存?

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


【解决方案1】:

第一个问题的答案:

    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

我希望它会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-10-17
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多