1

バックグラウンド

通常、Android アプリのヒープ メモリは少量です。そのため、常に大きなオブジェクトを保持しないようにする必要があります。

私が取り組んでいるアプリは、場合によっては OOM になる可能性があるため、メモリが少なくなる原因を確認する必要があると考えました。

私はMAT プラグインを使用しましたが、アプリにはそれぞれ 3.5MB を必要とする 3 つのビットマップがあることがわかりました。

問題

アプリには既に複数のビットマップが使用されていますが、それらはかなり小さいです (それぞれ 1MB 未満)。

実際、作成する各ビットマップがメモリをあまり消費しないようにブレークポイントを設定しましたが、何も見つかりませんでした。

私はまた、この問題に関するいくつかの Google IO ビデオ (このようなもの) を見てきました。どのクラスがオブジェクトへの参照を持っているかを確認するには、オブジェクトをクリックして、「GC ルートへのパス」=>「弱い参照を除外する」を選択するようです。

私が試したこと

ドミネーターツリーで、どのビットマップが最も多く使用されているかを確認できます (「保持ヒープ」を参照)。

データをエクスポートするには、バイト配列を選択してから、「コピー」=>「値をファイルに保存」します。

ただし、他の人がこの投稿で試したように、ビットマップ自体を表示することに固執しています (その形式、幅、高さを知る必要があります)。さらに、このタスクに GIMP を使用するのは非常に煩わしい場合があります。

質問

Eclipse 内でビットマップ (画像自体) を表示するにはどうすればよいですか?

4

0 に答える 0