gpt4 book ai didi

android - 通过 ADB 的 JDWP VS 通过 DDMS 的 JDWP

转载 作者:行者123 更新时间:2023-12-02 21:03:41 25 4
gpt4 key购买 nike

根据 Android 文档,每个 DVM 都有一个要附加的 JDWP 端口(不完全是 JDWP 协议(protocol),但实现了大部分 JDWP 功能)。因此您可以使用 ADB 附加到它。

根据同一文档,DDMS 为每个 DVM 提供一个 JDWP 和一个 JDWP 基本端口 (8700)。

我的问题是:这两种选择的优缺点。

谢谢

最佳答案

设备上的每个可调试虚拟机都与 ADB 连接。 DDMS 与 ADB 通信以获取虚拟机列表,然后使用 ADB 与它们通信。

DDMS 监听每个虚拟机的单独 TCP 端口,因此您可以“直接”连接到设备上的任何虚拟机。此外,为了方便起见,它监听端口 8700,并将该处的任何连接路由到当前在 UI 中选择的虚拟机。您可以使用 Eclipse、IntelliJ、jdb、jswat 等“调试远程虚拟机”连接到该端口。

连接后,JDWP 协议(protocol)定义用于通信的基本数据包格式(即数据包类型和长度如何编码)。 DDMS 扩展了 JDWP,为其目的定义了新的数据包格式。 DDMS 消息和调试器消息可以交错。

这里确实没有两个选择。调试器与 DDMS 对话,DDMS 与 ADB 对话,ADB 与 VM 对话。调试器和 VM 使用 JDWP,DDMS 对此进行了一些扩展,以便它可以共享相同的通信 channel 。

原始 DDMS 设计文档可以在 dalvik docs 中找到。 。它有点过时了(并且由于某种原因,格式为斜体),但基本细节没有改变。

关于android - 通过 ADB 的 JDWP VS 通过 DDMS 的 JDWP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19926972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com