I assume by snapshot you mean a heap dump.
From your app code you can call Debug.dumpHprofData()
to dump the data.
From a script you can call
adb shell am dumpheap <process> <file>
where <process>
is e.g. your process id or name, and <file>
is the dump file name. After that you can adb pull
the dump to your computer.
To analyze the heap dumps you can use e.g. jhat or MAT. Before that you need to run hprof-conv
(included in Android SDK) on the dump to convert it from Dalvik format to standard Java format.
Further reading: Memory Analysis for Android Applications
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…