There are many reasons why GC usage is not promoted.
1. The use of System.gc() is often considered to be
inefficient code. Technically System.gc() works when there is
anything to be garbaged. (This is my personal opinion and a general knowledge from my work experience)
2. You
can't actually
say what it does with the memory when you call it. And technically
Java Heap space does not depend upon Java Memory Allocations.
3. As mentioned Google IO 2011, GC usage has to be avoided.
Memory Management in Android