0

Eclipse 调试器仍然适用于 Android 应用程序。这让我想知道这个调试器是如何实际实现的。它是为 DVM 和 JVM 分别实现的,还是有一些公共接口可以让人们获取堆和堆栈信息?我正在尝试为我找到一个可编程接口来获取 Android 应用程序的堆快照。

4

1 回答 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 回答