メモリを解放する際に問題があります。私はBitmap
を追加しているHashmap
を持っており、ビットマップの数はかなり多いです。このため、私はOutOfMemoryError
を取得しています。だから私はBitmap
を少なくともCollection
から使用することを決めました。メモリのクランチやシステムのヒープメモリが少なくなっています。メモリ管理ロジックの合計使用可能メモリ
"ActivityManager.MemoryInfo.availMem"を使用しましたが、ヒープメモリではなく、合計RAMサイズのメモリを提供します。そして、ビットマップをコレクションから解放すると、このメモリが更新されないことがわかりました。
は、その後、私はこれらの3つのメソッドを使用していますDebug.getNativeHeapAllocatedSize()
Debug.getNativeHeapFreeSize()
Debug.getNativeHeapSize()
が、私はNativeHeapSizeは、いくつかの特定のレベルにまで高めることになった、OutOfMemoryError
が発生していることの後に変更、16 メガバイトを言います。この中でも、私はNativeHeapAllocatedSize
とgetNativeHeapSize
はCollection
からBitmap
を解放するには減少していないことがわかりました。
この問題を解決するにはどうすればよいですか?
私の問題は、現在使用可能なメモリが閾値メモリを超えた場合、私はコレクションからいくつかのBitmap
をリリースする予定とgarbage collectionがメモリを再利用して自由になるよう、私は最大の利用可能なアプリケーションの割り当てられたメモリと、現在使用可能なメモリを計算したいですエラーは発生しません。メモリ内
あなたはこれを見てみたいかもしれません。http://developer.android.com/training/displaying-bitmaps/index.html – Michaeldcooney