ADrawableは a よりもはるかに広範ですBitmap。 Drawableグラフィックス システムがディスプレイにレンダリングできるものを表すことを目的としています。-やDrawable- などのサブクラスがあり、これらは s を含まないため、手動でのメモリ管理は一切必要ありません。ShapeDrawableColorDrawableBitmap
aは a をBitmapDrawableラップし、Bitmapa への参照を含みますBitmap。BitmapAndroid はすべてのピクセル データをBitmaps別のヒープに保持し、アプリケーションの残りの部分とは別に管理するため、これは特別です。Android ガベージ コレクターがBitmapオブジェクトをクリーンアップすると、ビットマップ ヒープからピクセル データもクリーンアップされます。recycle()ただし、 を手動で呼び出してBitmap、無効をマークし、Bitmapそのピクセル データを解放することで、より早く発生させることができます。
BitmapAndroid は、実行中のアプリケーションごとに固定サイズのビットマップ ヒープを割り当てます。一度に使用中の が多すぎると、アプリがヒープを使い果たす可能性があります。そのため、アプリケーションでビットマップを広範囲に使用する場合、ビットマップが不要になるとすぐにビットマップを再利用することでメリットが得られるでしょう。
更新:コメントに記載されているように、個別のビットマップ ヒープは Android のハニカム以前のバージョンに適用されます。Honeycomb の時点で、ビットマップ ヒープはアプリケーション ヒープに統合されました。詳細情報を含む SO 投稿を次に示します。