ドキュメントからの引用
http://developer.android.com/training/displaying-bitmaps/manage-memory.html
Android 2.3.3 (API レベル 10) 以前では、recycle() の使用が推奨されます。アプリで大量のビットマップ データを表示している場合、OutOfMemoryError エラーが発生する可能性があります。recycle() メソッドを使用すると、アプリはできるだけ早くメモリを再利用できます。
Android 3.0 (API レベル 11) では BitmapFactory.Options.inBitmap フィールドが導入されています。このオプションが設定されている場合、Options オブジェクトを受け取るデコード メソッドは、コンテンツの読み込み時に既存のビットマップを再利用しようとします。これは、ビットマップのメモリが再利用されることを意味し、パフォーマンスが向上し、メモリの割り当てと割り当て解除の両方が削除されます。ハニカム以降のバージョンでは、ビットマップ ピクセル データがヒープに割り当てられます。したがって、この場合は recycle を呼び出す必要はありません。gc が起動すると、ビットマップに割り当てられたメモリが解放されます。
メモリを解放するのはガベージ コレクタの仕事です。メモリを再利用する必要がある場合、ガベージ コレクタが作動します。GC deos はマークおよびスイープします。logcat で確認できます。
休憩時間が見られます。ヒープを大きくすると、より頻繁に gc が開始され、より頻繁に一時停止します。
GC_CONCURRENT freed <1K, 14% free 21220K/24455K, paused 6ms+26ms
GC_CONCURRENT : Jumps in because Heap is full
14% free 21220K/24455K After this collection 14% of memory is free. Check the heap usage.
paused 6ms+26ms Time taken to collect garbage.
このトピックに関する講演があります @ https://www.youtube.com/watch?v=_CruQY55HOk