私のアプリがあまりにも多くのメモリを使用している理由を理解しようとしています。私はしばしば15から18MBの間でそれを見ます。これは私が予想していたよりもかなり高いです。私はDDMS経由でヒープサイズを見ていたし、これを見た:私のアプリがすべてで大きな画像を扱っていないので、suspicous少しを見大きなヒープサイズの原因を見つけて修復する
。実際、私のアプリのドロアブルの合計は約250KBです。だから私はヒープ・ダンプを作成し、MATを使ってこのすべてのメモリがどこに向かうのかを特定しました。バイトは[]の配列は、これまでの最大の消費者がいたので、私は、次のドリルダウンと気づい:
sPreloadedDrawablesは、このような高い保持ヒープサイズに責任があるなぜ私は絶対にないアイデアを持っていません。私は根本的な原因を特定する方法、またはそれを「修正する」方法を知らない。
どこから行くべきですか?私のアプリは、画像データをまったく扱わないサービスを介してバックグラウンドで動作します。私は、ユーザーが使用することを選択できるアクティビティを持っていますが、再び、そのような大きなヒープサイズを説明しない小さなドロアブルを使用します。私はまた、アクティビティリークなどの厄介な発生をチェックしましたが、何も見つけられませんでした。
EDIT:エミュレータで実行するとヒープサイズが大幅に低くなっていることに気付きました。これはかなり混乱しています。 :/
携帯電話はどのAndroidバージョンで動作していますか?私は、ICSがイメージドロアブルをプリロードしていることに気付きました。私は、よりスムーズなUI体験を試し、VMメモリの増加を利用すると思います。あなたの携帯電話がICSにあり、エミュレータが2.Xであれば、その違いを説明できます。私は個人的に4.Xを実行しているエミュレータを調べて、膨らんだメモリが存在するかどうかを確認していません(後で私が何かすると思います)。間違いなく、4.0.3を実行している私の電話機にあります。 – sciutand
私の携帯電話はエミュレータと同じようにAndroid 4.0.3を実行しています。 – Glitch
エミュレータとデバイスの画面密度/サイズはどのくらいですか? – cistearns