软件测试系列:移动端安卓APP测试必备之ADB命令 (一)

一、adb及其组件

adb全称为Android Debug Bridge,「Android调试桥」,是连接 Android 手机与 PC 端的桥梁,可以让用户在电脑上对手机进行全面的操作。

adb 是在 Android SDK中的tools目录下的一个工具,使用这个工具,可以直接操作和管理Android模拟器,或者真实的Android设备。

adb是一种功能多样的命令行工具,是一种客户端-服务器程序,包括以下三个组件:

  • ADB client:运行在PC上,通过在命令行执行ADB,就启动了ADB Client 程序。比如Eclipse DDMS,Windows终端命令行,豌豆荚等。Client本质上就是Shell, 用来发送命令给Server
  • ADB server:运行在PC上,作为ADB client的server 端,也作为adbd 服务进程的客户端
  • adbd服务进程:作为daemon进程运行在Android系统上,以服务进程运行,Android系统启动时,由init程序启动adbd

二、adb工作原理

在PC HOST端,ADB会fork出一个守护进程(不是adbd),即ADB Server,而父进程(ADB Client)继续处理Client请求,所有的Client通过TCP端口号5037进行与Server 通信,而Server创建local socket与remote socket,前者用于和Client 通信,后者用来与远端进行通信,模拟器通过TCP,真机设备则通过usb。

当启动某个ADB客户端时,客户端会先检查是否有ADB服务器进程正在运行。如果没有,它将启动服务器进程。服务器在启动后会与本地TCP端口5037绑定,并监听ADB客户端发出的命令,所有ADB客户端均通过端口5037与ADB服务器通信。

然后,服务器会与所有正在运行的设备建立连接。它通过扫描5555到5585 之间(该范围供前16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现ADB守护进程(adbd),便会与相应的端口建立连接。

例如:

模拟器1,控制台:5554

模拟器1,adb:5555

模拟器2,控制台:5556

模拟器2,adb:5557

依此类推

ADB client 与ADB server之间是通过tcp进行通信,adb server和adbd通过usb或者tcp 进行通信。ADB Server对本地的TCP 5037端口进行监听,等待ADB Client 的命令。

 

三、adb常用命令

1、查看 adb 版本,或验证adb是否安装:

adb version

2、查看帮助信息,查看 adb 所支持的所有命令

adb help

3、启动 adb 服务

adb start-server

ps:启动 adb 服务时,默认端口为5037,若想指定端口进行启动:

adb -P <port> start-server

4、关闭adb服务

adb kill-server

5、查看当前连接的设备,已连接的设备会显示出来

adb devices

ps:设备的状态有3种,device、offline,unauthorized状态,这3种状态的含义分别是:
device,正常状态可调试
offline,仅连接不能调试,原因很可能是adb与安卓系统不匹配
unauthorized,连接不能调试,原因可能是未在手机上同意调试

6、有时即使设备物理连接正常,用adb devices查看却没有设备,则需要使用adb connect命令手动连接一下:

adb connect HOST[:PORT]

常用的模拟器的默认端口号:

 

连接真机手机没有传输线,可以用ip,首先保证在同一个网段,使用:IP:5555(5555也可以省略)。用ip连接注意,因为ip会变,执行命令时要注意,不要操作了其他人的设备

7、断开连接:

adb disconnect HOST[:PORT]
posted @ 2023-05-18 17:36  laoluoits  阅读(243)  评论(0编辑  收藏  举报