adb原理之深度剖析

2020-09-08  本文已影响0人  行水坐云

关键词:Android,MUMU,APP,ADB
一、adb原理图

adb原理图1.png
adb原理图2.jpg

adb相关的有三个端,分别是adb client 客户端,adb server 服务器,Daemon(adbd)守护进程。客户端和服务器存在于PC之中,守护进程存在于手机中。

二、验证adb原理
1)打开模拟器或者真机


打开mumu.png

2)连接mumu模拟器


连接mumu.png
3)分析
注意到,第二步是我们打的第一个adb命令。
通过tasklist查看到OS多了一个adb进程。再通过netstat查看到这个1184进程占用的端口是5037。根据adb原理图1,得知此adb是服务端。
image.png

通过windows任务管理器详细信息,得到此adb.exe是sdk platform-tools的adb.exe


打开adb所在的位置.png
sdk中adb.png
但是此时并没有adb客户端。很有可能adb客户端把命令发给服务端后,客户端进程退出。服务端不会退出,处于监听状态(根据adb原理图2)
就算是打adb devices同样,查不到adb客户端
adb devices.png
查看os adb进程.png

为了保证adb不退出,我们打adb shell。

adb shell.png
这个时候,再次查看os adb进程发现多了一个6072进程。
查看adb进程.png
再次通过任务管理器 详细信息,发现还是sdk下的platform-tools的adb.exe
任务管理器 详细信息.png
sdk-adb.png
!!!真相只有一个,原来所谓的adb服务端和客户端都是sdk下的adb.exe

验证守护进程
adb shell后使用netstat发现有一个273进程(adbd)占用5555端口,此进程即为守护进程。

adbd.png
PS:adb shell退出会话,再次查看adb进程,客户端进程退出,只有服务器处于监听状态,由此百分百确认,客户端发送命令完成后会自动退出。
上一篇 下一篇

猜你喜欢

热点阅读