一、ADB原理

1、ADB原理图

android进程守护工具 android 守护进程原理_IT


android进程守护工具 android 守护进程原理_软件测试_02


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

2、验证adb原理

2.1 打开模拟器或者真机

android进程守护工具 android 守护进程原理_软件测试_03


2.2 连接模拟器

android进程守护工具 android 守护进程原理_软件测试_04


2.3 分析

通过tasklist命令查询adb相关的进程,有一个10888号进程。再通过netstat命令查询10888号进程对应的端口,发现10888号进程占用的端口是5037。根据adb原理图1,得知此adb是服务端。

android进程守护工具 android 守护进程原理_IT_05

通过windows的任务管理器,找到adb.exe的进程,打开文件所在的位置。

android进程守护工具 android 守护进程原理_IT_06

得到此adb服务端就是SDK里面的adb.exe

android进程守护工具 android 守护进程原理_程序员_07


但是并没有看到adb客户端。在cmd,输入adb shell

android进程守护工具 android 守护进程原理_程序员_08


tasklist看到有2个adb相关的进程,多了一个35968号进程。

android进程守护工具 android 守护进程原理_IT_09


再通过windows任务管理器,查看35968号进程所处的位置。

android进程守护工具 android 守护进程原理_程序员_10

adb客户端还是SDK里面的adb.exe

android进程守护工具 android 守护进程原理_程序员_11

!!!真相只有一个,原来所谓的adb服务端和客户端都是sdk下的adb.exe

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

android进程守护工具 android 守护进程原理_软件测试_12


二、常用ADB命令

1、查询设备状态

adb devices

常见的状态有:

device 连接正常

offline 已断开

unauthorized 未授权(手机端弹出的调试框没有允许)

2、指定设备使用adb

adb -s 设备ID

android进程守护工具 android 守护进程原理_android进程守护工具_13


3、使用Android Linux内核的命令

Android Linux内核的命令包括:cd,rm,ps,kill,monkey等等。

adb shell 命令(可以直接打命令,也可以进入shell之后打命令)

android进程守护工具 android 守护进程原理_android进程守护工具_14


4、安装卸载

安装apk

adb install apk包

android进程守护工具 android 守护进程原理_ADB_15


覆盖安装apk

adb install -r apk包

android进程守护工具 android 守护进程原理_ADB_16


卸载apk

adb uninstall 包名(包名可通过adb shell pm list packages查看)

android进程守护工具 android 守护进程原理_ADB_17


5、文件上传和下载

电脑文件上传至手机

adb push 电脑路径 手机路径

android进程守护工具 android 守护进程原理_ADB_18


手机文件下载至电脑adb pull 手机路径 电脑路径

android进程守护工具 android 守护进程原理_android进程守护工具_19