Does Android DDMS provide APIs ? I need to automate the snapshot mechanism for the native heap. Or is there any post processing tool for analysis DDMS native heap snapshots.
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
where
is e.g. your process id or name, and
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