私のプロジェクトでは、単一の XML レイアウト (setContentView によって有効化) で構成される単純なアクティビティがあります。ただし、プロジェクトには他の活動があります。
レイアウトは、基本的に 2 つの .jpg 画像で構成されます。最初のものは 25kB で、400x153 ピクセルです。2 つ目は 4kB で、150x50 ピクセルです。
この非常に単純なコンテキストにもかかわらず、DDMS は、プログラムに 13MB が割り当てられていることを教えてくれます。これは、2 つの小さなイメージしかロードされておらず、一部のデバイスでは各プログラムの最大ヒープ サイズが 16MB であることを考えると、非常に大きいと思います。
このレイアウトでヒープが非常に大きくなるのは正常ですか?
編集:HProfダンプ:
問題の疑い 1: クラス「android.content.res.Resources」が「」によってロードされ、9,429,232 (70.39%) バイトを占有しています。メモリは、"" によってロードされた "java.lang.Object[]" の 1 つのインスタンスに蓄積されます。
問題の疑い 2: 「android.graphics.Bitmap」の 3 つのインスタンスが「」によってロードされ、2,147,960 (16.03%) バイトを占めています。
Biggest instances:
•android.graphics.Bitmap @ 0x41407b98 - 1,048,648 (7.83%) bytes.
•android.graphics.Bitmap @ 0x4169e6a0 - 979,256 (7.31%) bytes.
私はこれを本当に解釈することはできません。しかし、他のリソースが事前にロードされているように見えますか? (それぞれの活動に入る前に?)