一、ADB原理
1、ADB原理图
adb相关的有三个端,分别是adb client 客户端,adb server 服务器,Daemon(adbd)守护进程。客户端和服务器存在于PC之中,守护进程存在于手机中。
2、验证adb原理
2.1 打开模拟器或者真机
2.2 连接模拟器
2.3 分析
通过tasklist命令查询adb相关的进程,有一个10888号进程。再通过netstat命令查询10888号进程对应的端口,发现10888号进程占用的端口是5037。根据adb原理图1,得知此adb是服务端。
通过windows的任务管理器,找到adb.exe的进程,打开文件所在的位置。
得到此adb服务端就是SDK里面的adb.exe
但是并没有看到adb客户端。在cmd,输入adb shell
tasklist看到有2个adb相关的进程,多了一个35968号进程。
再通过windows任务管理器,查看35968号进程所处的位置。
adb客户端还是SDK里面的adb.exe
!!!真相只有一个,原来所谓的adb服务端和客户端都是sdk下的adb.exe
adb shell后使用netstat命令发现有一个1802进程(adbd)占用5555端口,此进程即为守护进程。
二、常用ADB命令
1、查询设备状态
adb devices
常见的状态有:
device 连接正常
offline 已断开
unauthorized 未授权(手机端弹出的调试框没有允许)
2、指定设备使用adb
adb -s 设备ID
3、使用Android Linux内核的命令
Android Linux内核的命令包括:cd,rm,ps,kill,monkey等等。
adb shell 命令(可以直接打命令,也可以进入shell之后打命令)
4、安装卸载
安装apk
adb install apk包
覆盖安装apk
adb install -r apk包
卸载apk
adb uninstall 包名(包名可通过adb shell pm list packages查看)
5、文件上传和下载
电脑文件上传至手机
adb push 电脑路径 手机路径
手机文件下载至电脑adb pull 手机路径 电脑路径