Appium appium 通过 adb 无线连接 Android 真机

一、准备工作

1、准备一台或多台Android设备(如小米,华为),开启USB调试
2、Android设备与电脑(Mac或者Windows)在同一个局域网内
3、电脑安装好ADB工具

二、具体步骤

1.使用数据线通过USB接口将手机与电脑连接,在终端中执行如下命令:

方法一USB数据线连接:adb devices 查看设备是否连接成功。

方法二通过无线局域网连接:adb tcpip 5555(PS:5555是连接时的默认端口号,可以设置为任何未占用的端口号)

返回restarting in TCP mode port: 5555则代表服务开启成功,可以拔掉数据线断开电脑和手机的连接。

2.找到手机的IP地址,执行连接命令:
一般在设置-关于手机-状态信息-IP地址可以找到,或者执行命令:
adb shell ip -f inet addr show wlan0
找到我的手机IP10.0.1.121

 Appium appium 通过 adb 无线连接 Android 真机

abd connect 10.0.1.121:5555

Appium appium 通过 adb 无线连接 Android 真机

返回connected to 10.0.1.121:5555代表连接成功
因为我们默认端口是5555,所以执行abd connect 10.0.1.121的时候相当于执行了abd connect 10.0.1.121:5555,如果adb tcpip连接的端口号不是5555时adb connect 时IP后需要需要加上端口号。
结果图:

Appium appium 通过 adb 无线连接 Android 真机

3.断开连接,执行:adb disconnect

PS:如果手机wifi断了,也会自动中断连接,需要重新连接。

三.解决电脑和手机的连接问题

1、我们做APP自动化的时候,没有必要每台设备都通过USB连接电脑了(毕竟USB端口有限,而且有些线用久了,接触不良的说),只要知道无线连接的IP和端口10.0.1.121:5555
以python+appium脚本为例,我们的连接参数可以从

desired_caps={}
desired_caps['platformName']='Android'
desired_caps['deviceName'] = '58d1a05c'
desired_caps['platformVersion'] = '7.0'
desired_caps['appPackage'] = 'com.tencent.mm'
desired_caps['appActivity'] = '.ui.LauncherUI'
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

改成

desired_caps={}
desired_caps['platformName']='Android'
desired_caps['deviceName'] = '10.0.1.121:5555:5555'
desired_caps['platformVersion'] = '7.0'
desired_caps['appPackage'] = 'com.tencent.mm'
desired_caps['appActivity'] = '.ui.LauncherUI'
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

2、由于可以无线连接设备,在我们跑APP自动化脚本的时候还可以很好的监控设备运行过程中的电量消耗,因为连接USB时会自动充电,会导致电量计算不准确。

3、当我们需要调试自己手机时,但是手机又需要充电,明显的USB充电很慢,这时我们可以adb无线连接调试。

4、摆脱束缚,调试的时候演示也没必要带着一堆线了,比如chrome的inspect,
chrome://inspect/#devices

Appium appium 通过 adb 无线连接 Android 真机

3.1、连接多台设备

当我们连接着两台设备时,执行
adb tcpip 5555

Appium appium 通过 adb 无线连接 Android 真机
 

提示:error: more than one device/emulator
此时我们只需要给adb命令 加上-s参数,指定设备号即可,其他的操作基本都是一样的了。
adb -s 50f98a9f tcpip 5555

Appium appium 通过 adb 无线连接 Android 真机

3.2、关于真机设备连接识别问题

1.如果List of devices attached下方没出现任何信息,就是手机没连上电脑,或者电脑上没安装手机的驱动

C:Usersadmin>adb devices
List of devices attached

2.插拔usb数据线,电脑屏幕出现无法识别的usb设备,那就是手机驱动没安装好

Appium appium 通过 adb 无线连接 Android 真机

3.3、一 安装手机驱动

1.电脑下载一个手机助手类的管理工具,它会自动识别手机设备型号,安装驱动

2.手机开启开发者选项,在设置里面要是没看到‘开发者选项’,打开关于手机-对着版本号连着点10次(有的机型点击7次即可)就出来了

Appium appium 通过 adb 无线连接 Android 真机

3.usb调试模式勾选

Appium appium 通过 adb 无线连接 Android 真机

3.4、 没授权(unauthorized)

出现unauthorized是因为手机没授权给电脑连接,重新插拔数据线,勾选USB调试

C:Usersadmin>adb devices
List of devices attached
A5RNW18316011440        unauthorized

1.手机重新连上电脑,插拔下数据线,勾选USB调试

Appium appium 通过 adb 无线连接 Android 真机

2.USB连接方式选择MTP

Appium appium 通过 adb 无线连接 Android 真机

3.5、 adb端口冲突

1.如果出现adb server version (32) doesn't match this client (36),这个就是adb端口冲突,被其它应用占用了,比如(91助手,手机管家之类的)

C:Usersadmin>adb devices
List of devices attached
adb server version (32) doesn't mat
error: could not install *smartsock
通常每个套接字地址(协议/网络地址/端
could not read ok from ADB Server
* failed to start daemon *
error: cannot connect to daemon

2.解决办法:卸载91助手,手机管家之类的

3.6、 offline

1.输入adb devices ,一直显示设备处于offline状态,先尝试以下基本操作:

C:Usersadmin>adb devices
List of devices attached
A5RNW18316011440        offline
  • 开启usb调试模式
  • 关闭第三方手机助手软件
  • 重启adb服务

adb kill-server
adb start-server

2.查看adb版本号,是不是低了

adb -version

Appium appium 通过 adb 无线连接 Android 真机

3.查看adb环境变量,是不是配置了多个adb

4.在手机设置中点击撤销USB调试授权,然后重新连接电脑,重新授权该电脑。

5.如果还不行的话,那就重启手机、重启电脑。