应用中的内存大小限制

时间:2017-11-24 11:58:50

标签: java android caching memory bitmap

我正在创建具有存储照片功能的Android应用。我注意到它运行缓慢,因此我决定创建缓存,我存储最小的照片(在gridView中查看)。 我创建了课程:

 public class PhotoCache {
     public static Map<String, Bitmap> photos = new HashMap<String, Bitmap>();
     public static long size = 0;
 }

然后如果我想在我的应用程序中加载位图,首先我检查它是否不存在于photos变量中。如果是的话我从那里拿走它。否则我从内存加载位图并添加到varialble照片。我现在任何问题都是缓存的大小。每次当我将位图添加到照片变量时,我也将其大小添加到长变量:

 PhotoCache.size += newBitmap.getByteCount();

然后我打印尺寸值来观察它的增长。令我震惊的是,在加载了几个bitmpas后,它的大小约为:26527680字节,并且没有引发任何outOfMemory错误。对我来说,为什么Android允许我在内存中拥有大量字节,这一点非常奇怪。 现在我想保护我的应用程序,我必须知道我可以存储在照片中的内存限制。 PS。我知道Android中有一些缓存位图的解决方案,但我想使用自己的。

0 个答案:

没有答案