我的应用使用超过50MB的内存

时间:2013-11-06 18:05:45

标签: android memory

我是日本的Android开发者。我一直在开发应用程序,但我遇到了问题。

我的应用有两项活动。首先是Launch Activity,第二个是TopPage。 启动只有一个图像视图(在xml中设置资源)。 TopPage有两个用于Ad的webview和20个imagebutton(在xml中设置资源)。

问题是我的应用程序使用超过50MB的内存。我用DDMS确定了我的应用程序在eclipse中的内存使用情况。结果,堆是45MB,分配32MB,使用73%。 但是,我们还有另一种了解应用程序使用方式的方法,即Android操作系统上的“设置”。 我确认,使用量是50MB以上。

我认为图片资源仍留在内存中,所以我尝试了这段代码

public static final void cleanUpView(final View view){
if(view instanceof ImageButton){
        ImageButton ib = (ImageButton)view;
        ib.setImageDrawable(null);
        button++;
    }else if(view instanceof ImageView){
        ImageView iv = (ImageView)view;
        iv.setImageDrawable(null);
        image++;
    }else if(view instanceof ViewGroup){
        ViewGroup vg = (ViewGroup)view;
        int size = vg.getChildCount();
        for(int i = 0; i <= size; i++) {
            cleanUpView(vg.getChildAt(i));
        }
    }

}

但我无法解决这个问题。

如果您对此有所了解,请提供建议。

谢谢。

1 个答案:

答案 0 :(得分:0)

缩小你的位图..除非你将原始巨型位图插入这些图像按钮,否则你不应该使用那么多内存。 http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

kitkat也添加了内存工具。 http://developer.android.com/training/articles/memory.html