私はOOMを手に入れました。私はそれが以前の質問でたくさんカバーされたことを知っています、しかし私のものは一般的にAndroidとJavaの内部と関係があります。
ランダムなポイントで画像を読み込んでいると、この恐ろしいOOM例外が発生します。
HashMap>に画像があります。SoftReferencesの定義から、メモリが十分でない場合はDrawablesがGCされると思います。
対照的に、以前の調査から、ドローアブルのビットマップは、アプリケーションヒープとは異なるヒープ(ネイティブヒープ)に割り当てられていることがわかりました。これが、DDMSで6MBのメモリを使用しているにもかかわらず、アプリがクラッシュする理由を説明しています。
また、SoftReferencesはキャッシュに「最適」であり、Androidエンジニアが使用することを推奨しているようです。
私の質問は、私のアプリケーションヒープがMAXポイントに到達することはないので、これは私のSoftReferencesがGCされないことを意味するはずです。
この問題を解決するにはどうすればよいですか?それでは、SoftReferencesを使用することで本当にメリットはありますか?私は何かを正しく理解していませんか?
ありがとう!