DDMS

DDMS提供port-forwarding服务。

 

DDMS如何工作?

DDMS作为中间人,直接连接IDE和在device上运行的程序,android的每一个应用都在在即的线程中运行,每一个县城都有自己的vm, 每个vm都在一个特定的端口监听degugger.

 

启动时,DDMS连接adb, 并在两者之间开始device monitoring service, 这个service 会告诉ddms什么时候一个device连接上了。如果连接上了,DDMS和adb之间有启动一个vm monitoring serivce, 这个service会告知DDMS在device上运行的vm什么时候开始或关闭。一旦当vm开始运行, DDMS通过adb获得这个vm的process ID, 并通过device上的adb daemon打开一个连接在vm's debugger. 这样DDMS可以跟vm's debugger连接。

 

对device上的每一个vm,DDMS为它打开一个port来监听debugger,当debugger连到任意一个port上时,所有的数据直接在debugger和vm键传输。

 

DDMS同时也打开另一个local port, DDMS base port(by default 8700). DDMS在8700上也监听debugger,当一个debugger 连接上base port 时,debugger 和当前在DDMS上被选中的vm链接。

 

DDMS左侧的pane显示连接中的device,如果有?表示ddms从adb收到process ID后,没能与那个vm连接上,try restart ddms.

右侧的pane, threads: list of threads running in the process of target vm.

                                   id: vm给的unique thread id.

                                   tid: linux thread id, 主线程id与process id 相同。

                                   status: vm thread status, daemon threads用*表示。

                  vm heap:显示此heap stats, 在gc时,updated heap stats.

                 allocation tracker, track memory allocation of each vitual machine, 在左侧选择vm, 点击vm tracking -> getAllocations. 看所有从开始后tracking allocations, 点击getallocation 来refresh.

 

                 File explorer, 在左上角执行pull a file from or push, delete.

 

在ddms中,还只能手动在tools下mount sdcard,  $mksdcard 128M ./img

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值