adb client, adb server, adbd原理淺析(附帶我的操作過程)【轉】


本文轉載自:http://blog.csdn.net/stpeace/article/details/24933813

     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的服務端, 實際上就是下面這個意思:

       兒子 <------------------------------> 爸爸<------------------------------------->爺爺

 

        

        前面我們已經說過, 也可以利用數據線來進行連接, 這里, 我就不過多再贅述了, 原理大體類似, 為了讓大家更清晰, 我借鑒了網上的一幅圖, 這幅圖很強大, 真是太棒了:

        

       一圖勝千言萬語閉嘴閉嘴閉嘴

 

 

 

       突然, 我想起了小時候, 一個老人給我出的題: 兩個爸爸和兩個兒子, 要均分3個同樣的蘋果, 不允許切割, 請問怎么分?

 

       不閑扯了, 關機。去樓下買點東西吃吃, 逛逛, 回來看看畢淑敏的書, 明天還要上班呢!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM