首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过ADB实现的JDWP与通过DDMS实现的JDWP

通过ADB实现的JDWP与通过DDMS实现的JDWP
EN

Stack Overflow用户
提问于 2013-11-12 18:42:44
回答 1查看 4K关注 0票数 2

根据Android文档,每个DVM都有一个要连接的JDWP端口(不完全是JDWP协议,但实现了大多数JDWP特性)。因此,您可以使用ADB附加到它。

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

我的问题是:这两种选择的利弊。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-11-12 23:49:08

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

DDMS监听每个VM的单独TCP端口,因此您可以“直接”连接到设备上的任何VM。此外,为了方便起见,它会侦听端口8700,并将那里的任何连接路由到当前在UI中选择的VM。您可以使用"debug remote VM“与Eclipse、IntelliJ、jdb、jswat等连接到该端口。

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

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

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

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19926972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档