私のアプリケーションは、GT-I9001 などの一部の古い Android デバイスで、約 3.4MB の少量のメモリを使用します。しかし、HTC 1 で実行すると、アプリケーションは非常に多くのメモリを使用します。
割り当てられたメモリは 26.881MB で、大きすぎます。空きメモリは 2.940MB しかありません。次に、MAT ツールを使用してメモリ リークをチェックします。リソース ビットマップがマッハ メモリを使用していることがわかります。
理由は説明できません。私のアプリケーションはしばしばメモリ不足になります。画面の解像度が高いことが問題の原因だと思います。誰かがこの問題に遭遇した場合は、ディスカッションに参加してください。
問題をデバッグしたところ、何らかの理由が見つかりました。
私の開始アクティビティの onCreate() 関数で、ブレークポイントを確認できます。アプリケーションは、setContentView(R.layout.welcome) を呼び出してレイアウト xml をロードする前に、割り当てられたメモリ 3.4MB のみを使用します。次に、アプリケーションは次のステップに進み、割り当てられたメモリ 19MB を使用します。したがって、この問題はレイアウト xml の読み込みが原因であると考えられます。
「welcome.xml」ファイルを変更し、「RelativeLayout」のみを持つすべてのウィジェットを削除しました
しかし、プログラムは 19MB のメモリも使用します。最後に、RelativeLayout の背景を削除し、プログラム メモリを通常のサイズに戻し、3MB しか使用しませんでした。
pictrue "loading_background.png" のサイズは 21KB しかありませんが、おそらくハイエンド デバイスの高解像度がメモリ内の画像サイズを変更したと思います。9.png 画像を使用してみます。問題のこの部分が理解できたら、ディスカッションに参加してください。