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

10-05 18:01
查看更多