我是日本的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));
}
}
}
但我无法解决这个问题。
如果您对此有所了解,请提供建议。
谢谢。
答案 0 :(得分:0)
缩小你的位图..除非你将原始巨型位图插入这些图像按钮,否则你不应该使用那么多内存。 http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
kitkat也添加了内存工具。 http://developer.android.com/training/articles/memory.html