I do not know if the following information is correct, but I am telling this out of my own experience
I think there is not much to explain about Heap size.
The Heap is the memory that your application uses of the phone, which has a maximum of 16 MB per application. If you exceed this your application will crash with the "Out of memory" error.
You can prevent this from growing too much by just simply not keeping everything in your memory that you use. (For Example: Finishing activities, closing the camera etc)
At this moment there is a bug known that prevents activities to be removed from the memory if they've started a thread. I worked around this with some forced GC's in my code (nasty
will remove that when they fixed it), which frees up some of that used memory some times.