Android DDMS是否提供API?我需要自动化 native 堆的快照机制。或者是否有任何用于分析DDMS native 堆快照的后处理工具。
最佳答案
我假设快照是指堆转储。
从您的应用程序代码中,您可以调用 Debug.dumpHprofData()
来转储数据。
从脚本中,您可以调用
adb shell am dumpheap <process> <file>
<process>
在哪里,例如您的进程 ID 或名称,<file>
是转储文件名。之后,您可以将转储 adb pull
转储到您的计算机。要分析堆转储,您可以使用例如jhat 或 MAT。在此之前,您需要在转储上运行
hprof-conv
(包含在Android SDK中),以将其从Dalvik格式转换为标准Java格式。进一步阅读:Memory Analysis for Android Applications