In Android Dalvik VM, Garbage Collection will be triggered because of one of the following reasons:
A concurrent GC that frees up memory as your heap begins to fill up.
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.
A GC that occurs when you request to create an HPROF file to analyze your heap.
An explicit GC such as when you call gc() (which you should avoid calling and instead trust the GC to run when needed).
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).