adb client, adb server, adbd原理浅析

本文详细介绍了ADB(Android调试桥)的工作原理及连接机制。通过实际操作步骤,展示了PC端ADB客户端如何通过TCP连接到ADB服务器,并最终连接到Android设备上的ADBD服务。深入剖析了ADB的连接过程和技术细节。
摘要由CSDN通过智能技术生成
  adb是什么? adb就是Android调试桥,很形象啊。 先来看adb原理的逻辑图:

 

     再来进行实际操作:我的pc的ip是192.168.1.102, 我的android手机的ip为192.168.1.100

    1.  在pc上执行:netstat -nao | findstr 5037

         发现结果是空白。


    2. 执行adb shell, 肯定是进不了任何shell啊, 然后执行:netstat -nao | findstr 5037

        结果是:TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       3840

        可见3840进程正在监听5037端口, 这个进程实际上就是adb server


    3. 打开android手机,执行adb connect 192.168.1.100,  请参考我之前的博文, 确保adb能连接上手机哈。

       发现, 界面提示adb成功连接上了手机。

       执行netstat -nao | findstr 5037, 居然仍然是:TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       3840

       执行adb shell, 进入手机的android系统, 再次在pc的cmd中(非前面的shell中)执行netstat -nao | findstr 5037, 结果为:

      TCP    127.0.0.1:1571         127.0.0.1:5037         ESTABLISHED     4496
      TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       3840
      TCP    127.0.0.1:5037         127.0.0.1:1571         ESTABLISHED     3840  

       表明,adb client和adb server建立tcp连接了。


     4. 不需要退出上面的shell, 仅在另一个cmd中执行 netstat -nao | findstr 5555, 结果为:

         TCP    192.168.1.102:1559     192.168.1.100:5555     ESTABLISHED     3840

        表明, adb server和adbd建立起了tcp连接。


     5. 前面已经进入了手机的shell, 现在在shell中执行:netstat -nao | busybox grep 5555, 结果为:

         tcp       0      0 0.0.0.0:5555           0.0.0.0:*              LISTEN
         tcp       0      0 192.168.1.100:5555     192.168.1.102:1559     ESTABLISHED

         进一步证实, adb server和adbd建立起了tcp连接。


        归纳:

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

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


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

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


        

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

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值