In Android Dalvik VM, Garbage Collection will be triggered because of one of the following reasons:

GC_CONCURRENT

A concurrent GC that frees up memory as your heap begins to fill up.

GC_FOR_MALLOC

A GC was caused because your app attempted to allocate memory when your heap was already full, so the system had to stop your app and reclaim memory.

GC_HPROF_DUMP_HEAP

A GC that occurs when you request to create an HPROF file to analyze your heap.

GC_EXPLICIT

An explicit GC such as when you call gc() (which you should avoid calling and instead trust the GC to run when needed).

GC_EXTERNAL_ALLOC

This happens only on API level 10 and lower (newer versions allocate everything in the Dalvik heap). A GC for externally allocated memory (such as the pixel data stored in native memory or NIO byte buffers).