从1个代码加载20个图像后,android手机中的任务管理器显示4mb。从第二个代码开始显示9mb。
但是,在这两种情况下,即使在调用垃圾收集器之后,Android Studio也会显示相同的2.9mb,分配1.8mb。为什么会这样?哪一个是真正的堆?
1代码:
img = BitmapFactory.decodeResource(context.getResources(), R.drawable.img);
2代码:
img = BitmapFactory.decodeResource(context.getResources(), R.drawable.img);
img = Bitmap.createScaledBitmap(img,
(int)(img.getWidth() * scale), (int)(img.getHeight() * scale), false);
PS:比例变量== 1
答案 0 :(得分:0)
尝试将第二个代码更改为:
img1 = BitmapFactory.decodeResource(context.getResources(), R.drawable.img);
img2 = Bitmap.createScaledBitmap(img1,
(int)(img1.getWidth() * scale), (int)(img1.getHeight() * scale), false);
img1.recycle();
因此,您可以尝试检测内存消耗programaticaly
MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);