Eclipse调试器仍适用于Android应用程序。这让我想知道这个调试器是如何实现的。它是为DVM和JVM单独实现的,还是有一些人们可以获取堆栈和堆栈信息的通用接口?我正在尝试为我找到一个可编程的界面来获取Android应用程序的堆快照。
答案 0 :(得分:0)
Eclipse支持称为“Java平台开发人员架构”(JPDA)的调试架构,其中一部分支持远程调试基础架构,如JDWP(Java调试线协议)。有关详细信息,请参阅http://www.ibm.com/developerworks/java/library/os-eclipse-javadebug/index.html。
Android实现了JDWP(在Android上调试启动的应用程序实例化了一个JDWP线程,可以侦听特定端口)协议,这就是Eclipse能够用来调试Android应用程序的内容。
不确定您是否可以使用JDWP协议来获取堆转储,但您可以使用'am'命令“以编程方式”触发堆转储。
以下是使用adb shell命令的示例
$ adb shell am
或app可以执行'am'并触发堆转储。
希望这有帮助。