0

我是一名日本 Android 开发人员。我一直在开发一个应用程序,但我遇到了一个问题。

我的应用程序有两个活动。第一个是 Launch Activity,第二个是 TopPage。启动只有一个图像视图(在 xml 中设置资源)。TopPage 有两个用于广告的 web 视图和 20 个图像按钮(在 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));
        }
    }

}

但我无法解决这个问题。

如果您对此有所了解,请指教。

谢谢你。

4

1 回答 1

0

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

kitkat 还添加了记忆工具。 http://developer.android.com/training/articles/memory.html

于 2013-11-06T21:28:30.587 回答