跟踪内存泄漏 - 位图

时间:2014-05-07 15:08:07

标签: android image memory-leaks bitmap mat

我的应用程序中跟踪内存泄漏存在问题。 我使用MAT来做这个,但我也是这个功能的初学者,所以我需要你的帮助。

Dominator树看起来像这样: enter image description here

显然23%的位图不正常......

GC Root的路径 - >排除弱引用:

enter image description here

但我真的不知道下一步该做什么......很明显,记忆正在通过图像泄漏。

我将资源转换为位图并将其缩放为:

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;
}

感谢您的帮助,对不起我的英语......

0 个答案:

没有答案