从文档中引用
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 对象的解码方法将在加载内容时尝试重用现有位图。这意味着位图的内存被重用,从而提高了性能,并消除了内存分配和取消分配。在蜂窝和更高版本中,位图像素数据在堆上分配。所以在这种情况下你不需要调用回收。当 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