How can I determine if my android app has memory leak?
You can use MAT
It is a very good tool and gives very detailed report of your project with basic information linked with memory leaks
MAT in Android
http://android-developers.blogspot.in/2011/03/memory-analysis-for-android.html
How to use MAT
http://kohlerm.blogspot.in/2009/07/eclipse-memory-analyzer-10-useful.html
http://android-developers.blogspot.in/2011/03/memory-analysis-for-android.html
http://ttlnews.blogspot.in/2010/01/attacking-memory-problems-on-android.html
Eclipse integration of MAT
http://www.eclipse.org/mat/downloads.php
http://www.eclipse.org/forums/index.php/m/878338/
Update Site: http://download.eclipse.org/mat/1.1/update-site/
Eclipse integration of BERT (dependency on this )
http://wiki.eclipse.org/BIRT_Update_Site_URL
When I faced the same problem as you, I found LeakCanary. It helps to detect memory leaks during runtime in debug builds and provides comfortable UI for the stacktrace history. Here you can read more information about this tool for detecting memory leaks as well as some other useful hints for Android development: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/.Hope it works for you and other mobile developers!
Generally if you use an application and it's accumulating memory
12 MB ... 13.5 MB...15 MB ... think about a cloud that accumulates humidity ... etc
If you see this pattern than your app has memory leak.
Another possibility is that you don't have a leak but you just use too many objects or too big objects or that you do not economize objects well enough. take under account that bitmaps are very expensive so handling bitmaps may not be so trivial in android which is memory and resource limited environment.