0

私は日本の Android 開発者です。アプリを開発していますが、問題があります。

私のアプリには2つのアクティビティがあります。1 つ目は Launch Activity、2 つ目は TopPage です。起動には画像ビューが 1 つしかありません (xml でリソースを設定します)。TopPage には、Ad 用の 2 つの webview と 20 個の imagebutton (xml でリソースを設定) があります。

問題は、私のアプリが 50MB を超えるメモリを使用していることです。DDMS を使用して、日食でのアプリのメモリ使用量を確認しました。結果、ヒープは 45MB、割り当ては 32MB、使用率は 73% です。しかし、Android OS では「設定」という別の方法でアプリの使用状況を知ることができます。確認したところ、使用量は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 に答える