我是一名日本 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));
}
}
}
但我无法解决这个问题。
如果您对此有所了解,请指教。
谢谢你。