0

有没有一个公式可以用来计算 a 的大小LruCache?我可以根据Runtime.getRuntime().

我正在存储位图文件 - 文件数据,而不是解压缩的位图。

4

2 回答 2

4

这是缓存位图指南的摘录:

// Get memory class of this device, exceeding this amount will throw an
// OutOfMemory exception.
final int memClass = ((ActivityManager) context.getSystemService(
        Context.ACTIVITY_SERVICE)).getMemoryClass();

// Use 1/8th of the available memory for this memory cache.
final int cacheSize = 1024 * 1024 * memClass / 8;
于 2013-01-05T03:30:20.307 回答
1

您正在以错误的方式解决您的问题。与其尝试使缓存适合可用内存,不如让系统在内存下降时从缓存中删除内容。这就是软引用的用途。

有一些可用的 Java 实现基于软引用(如 Googles MapMaker )的缓存,但我不确定这些库带来了多少足迹,以及您是否更适合在 Android 上自制实现。

于 2012-06-21T20:05:30.953 回答