我的应用程序中跟踪内存泄漏存在问题。 我使用MAT来做这个,但我也是这个功能的初学者,所以我需要你的帮助。
Dominator树看起来像这样:
显然23%的位图不正常......
GC Root的路径 - >排除弱引用:
但我真的不知道下一步该做什么......很明显,记忆正在通过图像泄漏。
我将资源转换为位图并将其缩放为:
private Bitmap getBitmapFromRes(int resId) {
Bitmap tmp = null;
Bitmap b = null;
try {
// Decode image size
final int REQUIRED_SIZE = 70;
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
int scale = 1;
while (o.outWidth / scale / 2 >= REQUIRED_SIZE
&& o.outHeight / scale / 2 >= REQUIRED_SIZE)
scale *= 2;
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
InputStream fis = context.getResources().openRawResource(resId);
b = BitmapFactory.decodeStream(fis, null, o2);
fis.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (tmp != null) {
tmp.recycle();
tmp = null;
}
}
return b;
}
感谢您的帮助,对不起我的英语......