1

で作成した大きなビットマップがありBitmap.createBitmap()ます。文字に意味はあるのか

bitmap = null;

直前

bitmap = Bitmap.createBitmap();

新しいビットマップの構築中に、GC が古いビットマップで占められていたメモリを使用できるようにします。

API レベルは 11 です。

ありがとうございました。

4

2 に答える 2

0

bitamp = null;GC がビットマップ オブジェクトによって占有されているメモリを解放することを保証しません。Bitmap は final クラスであるため、GC では final オブジェクトの優先度が非常に低いためです。メソッドを使用bitmap.recycle()してガベージ コレクション (GC) を確保します。

于 2013-09-09T09:19:14.523 に答える
0

http://www.youtube.com/watch?v=_CruQY55HOk

動画の11:23あたりをご覧ください。男はビットマップメモリ​​管理について話します

メモリを解放するためにガベージコレクターに任せます。andorid 2.3.3 以下でbitmap = null使用する代わりに。3.0以降でbitmap.recycle()使用BitmapFactory.Options.inBitmap

Android - ビットマップとメモリ管理?

http://developer.android.com/training/displaying-bitmaps/manage-memory.html

Android 2.3.3 以下の場合

Android 2.3.3 (API レベル 10) 以前では、recycle() の使用が推奨されます。アプリで大量のビットマップ データを表示している場合、OutOfMemoryError エラーが発生する可能性があります。recycle() メソッドを使用すると、アプリはできるだけ早くメモリを再利用できます。

Android 3.0 以降

ビットマップ ピクセル データはヒープに格納されます。

Android 3.0 (API レベル 11) では BitmapFactory.Options.inBitmap フィールドが導入されています。このオプションが設定されている場合、Options オブジェクトを受け取るデコード メソッドは、 content をロードするときに既存のビットマップを再利用しようとしますこれは、ビットマップのメモリが再利用されることを意味し、パフォーマンスが向上し、メモリの割り当てと割り当て解除の両方が削除されます。

また、これが役立つかもしれないことを確認してください

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

于 2013-09-09T09:21:52.987 に答える