WEB开发网
开发学院手机开发Android 开发 Android 的调试原理 阅读

Android 的调试原理

 2010-02-24 20:16:00 来源:WEB开发网   
核心提示:一个App跑在一个进程中,这个进程又被一个VM绑定,Android 的调试原理(3),都是一对一的,但VM与Emulator显然是多对一的,剩下的就是DDMS把拿到的数据再扔给ide 的 debugger(它们之间默认通过8700端口,可更改,那调试时debugger从VM中拿到栈线程进程等信息,而daemon的作用仅

一个App跑在一个进程中,这个进程又被一个VM绑定,都是一对一的,但VM与Emulator显然是多对一的,

那调试时debugger从VM中拿到栈线程进程等信息,而daemon的作用仅仅是被DDMS用于建立一条连接(看下面)。

最后一类则是运行在PC上的DDMS debugger;

这个debugger是IDE的调试器,你可以改成另一个调试器;

DDMS是Dalvik Debug Monitor Service,负责建立调试的作用,它仅有两个Service,其他的功能都是通过ADB client.让IDE与Emulator交互起来的。

2)开启IDE时,DDMS会建立一个Device monitoring service用于监控Emulator,因为可以开启多个Emulator嘛;

如果找到一个Emulator,那么DDMS才会再开启另一个Service叫VM Monitoring Sevice用于监控该Emulator下的VM; 第一部分提到adb有三个部分,其中的adb client可以多个实例的,DDMS的Service通过从ADB Client与ADb server的交互结果来维护自身的数据。

如果VM Monitor找到Emulator的一个VM,那么DDMS会利用ADB获取目标VM的进程ID,

同时通过client与daemon建立起与vm的debugger的新连接,注意新连接的交互端口是从8600开始的(n个的话端口是8659+n),这条新连接可以让DDMS获得与VM的实际交互。

剩下的就是DDMS把拿到的数据再扔给ide 的 debugger(它们之间默认通过8700端口,可更改,因为与VM的交互端口从8600开始使用的话可能会不够的),

这样IDE的Debug视图就能正确工作了.

上一页  1 2 3 

Tags:Android 调试 原理

编辑录入:coldstar [复制链接] [打 印]
赞助商链接