android adb原理

ADB是Android系统提供的调试工具,整个ADB工具由三部分组成:adb client、adb service、adb daemon。

1、ADB client

提供HOST端运行的命令

2、ADB service

HOST端上的一个后台进程

3、ADB daemom

DEVICE端(真实的机器或者模拟器)的守护进程

这三部分都是从(system/core/adb)里面编译出来的,我们很多时候去网上下载adb.exe来用,实际上我们的SDK代码下面就有adb,而且代码是可以修改的。

ADB代码位于/system/core/adb目录下,通过查看Android.mk,可以知道,该目录下的代码生成了两个MODULE,分别是adb和adbd, adb client和adb service都是由adb这个可执行文件实现, adb daemon由adbd实现。adb和adbd的一些源代码文件是用同一个的,编译时通过LOCAL_CFLAGS的参数ADB_HOST来区分,这种你中有我我中有你的关系,对于初次接触的朋友们,多少增加了些困扰。理清了ADB几部分的关系,以及源代码的结构,对ADB的认识已经有一个飞越了。

 4、

    归纳:

        adb client(pid:4496)   <--->adb server(监听5037端口, pid:3840)<--->adbd(监听5555端口, pid:未显示)

        |<-------------------------------    在 pc 端    ------------------------------> |        |<------------ 在手机端------------>|

 

        其中, adb server作为adb client的服务端, 而adbd又作为adb server的服务端, 实际上就是下面这个意思:

       儿子 <------------------------------> 爸爸<------------------------------------->爷爷

 

        

        前面我们已经说过, 也可以利用数据线来进行连接, 这里, 我就不过多再赘述了, 原理大体类似, 为了让大家更清晰, 我借鉴了网上的一幅图, 这幅图很强大, 真是太棒了:

 

posted on 2018-11-16 14:15  world_hello!!!!  阅读(91)  评论(0)    收藏  举报

导航