adb通过wifi连接android设备

本文章转载于搜狗测试

adb通过wifi连接android设备

问题背景

近期的项目测试中,需要将移动设备与厂商机器进行usb连接视频传输(投屏)。测试过程中需要定位问题,经常需要查看实时日志,移动设备已经和厂商机器usb连接投屏,无法用usb连接到PC,那么有什么办法可以解决上面的问题呢?大白很苦恼~~~

adb支持usb连接模式和tcpip连接模式,我们可以用tcpip模式通过wifi无线连接adb

其他应用场景

usb线比较松的时候,adb连接经常断开;usb线连接,手机助手等程序会自动连接adb,经常导致adb断开;采用wifi连接adb可以减少上述问题发生,对测试人员来说也是非常有帮助的。

具体连接步骤如下:

1、确认本机PC没有任何adb设备连接,包括模拟器和usb连接

查看当前PC端连接有多少设备

adb devices命令后,列表显示为空;

2、将远程android设备接入Wi-Fi,并查看其IP地址

查看android设备的IP地址,这里有三种方式查看Android设备IP。

(1).设置-关于手机-状态信息-IP地址中查看

(2).设置-WLAN-点击当前链接上的Wi-Fi查看IP

例如:设置—〉无线或网络---〉WLAN设置—〉查看当前连接Wi-Fi的IP地址(部分机型需要按menu键并选择“高级”选项---〉IP地址)

(3).通过adb命令查看设备IP地址:adbshell netcfg

前提:(设备已经和PC建立了usb连接)

确保电脑和Android设备连接在同一个WIFI网络环境(同一个局域网下,进行通信)

3、本机command命令下执行ping  android设备的IP

例如ping10.129.49.143,如果ping成功,说明可以连接

ping成功

adb通过wifi连接android设备_第1张图片

4,执行adb connect

知道设备IP地址之后,就可以用adb connect命令通过IP和端口号连接adb。

adb connect10.129.49.143

如果显示连接成功,则可继续执行后面的操作;如果不成功,如下图显示:connect拒绝

adb tcpip模式重启adb

adb tcpip 5555

adb通过wifi连接android设备_第2张图片

连接成功,connectedto 10.129.49.143:5555

5adb connect ip成功以后可以执行原来usb连接时的所有命令

如adbinstall,adblogcat等,下图为项目测试时wifi连接android设备,在androidstudio环境,查看实时log

adb通过wifi连接android设备_第3张图片

AndroidDebug Bridge

我们一般简称为adb,它是一个非常强大的命令行工具,通过adb工具,你能够与你的android设备进行通信。adb是基于C/S模式的程序,包含以下三个组件:

adb通过wifi连接android设备_第4张图片

1)adb client(客户端)

client是运行在PC端的,该组件发送命令,可以通过发出adb命令从命令行终端调用客户端。每当我们发起一个adb命令的时候,就会开启一个client程序。当然,当我们开启DDMS或者ADT的时候,也会自动创建client。当我们开启一个client的时候,它首先会去检测后台是否已经有一个server程序在运行着,否则会开启一个adb-server进程。所有的client都是通过5037端口与adb-server进行通信的。

2adb daemonadbd后台程序)

Daemon,该组件作为一个后台进程运行在模拟器/真实Android设备中,在设备上运行命令。daemon使用端口的范围是5554-5585,每个模拟器/设备连接到PC端时,总会开启这样一个后台进程,并且为其分配了两个连续的端口,比如:

Emulator1, console: 5554

Emulator1, adb: 5555

因为每个设备都分一组两个端口,所以adb连接手机的最大数量为16。

端口的作用,在这两个端口中,其中偶数端口是用于server与设备进行交互的,可以让server直接从设备中读取数据,而奇数端口是用来与设备的adbd进行连接通信的。

3)adb server(服务器)

Server,该组件管理客户端和后台程序之间的通信,作为一个后台的程序运行在PC端。当一个server开启的时候,会自动绑定并且监听5037端口,接收client通过该端口发送过来的命令。同时server还会对5555-5585间的奇数端口进行扫描,进行对已连接设备的定位。

你可能感兴趣的:(adb通过wifi连接android设备)