はじめまして。
アプリの開発を行っているのですが、Androidの設定→アプリから確認できるキャッシュしたプロセスを表示で確認出来るメモリの使用量が50MBを超えている状態になり、困っています。自分のXperiaZでは確認出来ていませんが、メモリの少ない端末だと落ちてしまうことがあるようです。
起動画面(アプリのロゴ画像をxmlでイメージビューのリソースを指定して表示)で16MB、トップページ(xmlでリソースを指定したイメージボタンが20個、小さいwebviewが上下に2つ)を表示するとその時点で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));
}
}
}
上記のコードで解放を試みました。その結果、eclipseのDDMS上で、usedが90%→50%以下に軽減出来ているのは確認しました。ですが、最初に書いたAndroidの設定から見られるメモリの使用量では何も変化がありませんでした。
テスト用のアプリを別に作り、起動画面(xmlでイメージビューのリソース指定)から画像などなにも表示しない画面に遷移させて確認したところ、メモリについて同じ現象が起きています。どちらもonCreateでレイアウトを指定しているだけのアクティビティなので、他に処理は書いていません。
メモリの使用量を減らすにはどうしたらいいでしょうか?よろしくお願いします。