Eclipse 调试器仍然适用于 Android 应用程序。这让我想知道这个调试器是如何实际实现的。它是为 DVM 和 JVM 分别实现的,还是有一些公共接口可以让人们获取堆和堆栈信息?我正在尝试为我找到一个可编程接口来获取 Android 应用程序的堆快照。
问问题
844 次
1 回答
0
Eclipse 支持称为“Java 平台开发人员架构”(JPDA) 的调试架构,并且作为其中的一部分支持远程调试基础架构,如 JDWP(Java 调试有线协议)。有关这方面的更多详细信息,请参阅http://www.ibm.com/developerworks/java/library/os-eclipse-javadebug/index.html。
Android 实现了 JDWP(在 Android 上以 debug 开始的应用程序具有实例化的 JDWP 线程,它侦听特定端口)协议,这就是 Eclipse 能够用来调试 Android 应用程序的东西。
不确定是否可以使用 JDWP 协议来获取 heapdump,但可以使用“am”命令“以编程方式”触发 heapdump。
这是使用 adb shell 中的命令的示例
$ adb shell 上午
或者应用程序可以执行“am”并触发堆转储。
希望这可以帮助。
于 2013-01-14T05:47:13.403 回答