adb通过wifi连接android设备
题记:在用pc连接手机进行测试时,我一直都是用的usb有线连接,后来遇到一个尴尬的问题,那就是我手机要充电的呀!
于是上网寻求了这个解决方案,通过wifi无线连接,而且无线连接调试比有线连接还有一些优点,通过下面这篇文章详细说明。
文章来源:大白测试。
adb通过wifi连接android设备
问题背景:
近期的项目测试中,需要将移动设备与厂商机器进行usb连接视频传输(投屏)。测试过程中需要定位问题,经常需要查看实时日志,
移动设备已经和厂商机器usb连接投屏,无法用usb连接到PC,那么有什么办法可以解决上面的问题呢?(尴尬,usb连接视频传输了)。
adb连接方式:
adb支持usb连接模式和tcpip连接模式,我们可以用tcp/ip模式通过wifi无线连接adb。
其他应用场景:
usb线比较松的时候,adb连接经常断开;usb线连接,手机助手等程序会自动连接adb,经常导致adb断开;
采用wifi连接adb可以减少上述问题发生,对测试人员来说也是非常有帮助的。
具体连接步骤如下:
1、确认本机PC没有任何adb设备连接,包括模拟器和usb连接
查看当前PC端连接有多少设备
adb devices命令后,列表显示为空;
(灵光:pc端是可以连接多个设备的,adb devices可以查看连接设备列表,可以在genymotion中开启多个手机,这样pc端就连上了,
我在做appium自动化的时候,也尝试过将一个脚本跑到多个手机,具体流程在笔记里有)
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
例如ping 10.129.49.143(手机ip),如果ping成功,说明可以连接
ping成功
4,执行 adb connect
知道设备IP地址之后,就可以用adb connect命令通过IP和端口号连接adb。
adb connect 10.129.49.143
如果显示连接成功,则可继续执行后面的操作;如果不成功,如下图显示:connect拒绝
用adb tcp ip模式重启adb
adb tcpip 5555
连接成功,connected to 10.129.49.143:5555
5、adb connect ip 成功以后可以执行原来usb连接时的所有命令
如adb install,adb logcat等,下图为项目测试时wifi连接android设备,在androidstudio环境,查看实时log
(下一步要好好学学adb 一些日志等其它操作)
知识提升:ᕦ(・ㅂ・)ᕤ
Android Debug Bridge
我们一般简称为adb,它是一个非常强大的命令行工具,通过adb工具,你能够与你的android设备进行通信。
adb是基于C/S模式的程序,包含以下三个组件:
1)adb client(客户端)
client是运行在PC端的,该组件发送命令,可以通过发出adb命令从命令行终端调用客户端。
每当我们发起一个adb命令的时候,就会开启一个client程序。当然,当我们开启DDMS或者ADT的时候,也会自动创建client。
当我们开启一个client的时候,它首先会去检测后台是否已经有一个server程序在运行着,否则会开启一个adb-server进程。
所有的client都是通过5037端口与adb-server进行通信的。
2)adb daemon(adb后台程序)
Daemon,该组件作为一个后台进程运行在模拟器/真实Android设备中,在设备上运行命令。
daemon使用端口的范围是5554-5585,每个模拟器/设备连接到PC端时,总会开启这样一个后台进程,
并且为其分配了两个连续的端口,比如:
Emulator1, console: 5554
Emulator1, adb: 5555
因为每个设备都分一组两个端口,所以adb连接手机的最大数量为16。
端口的作用,在这两个端口中,其中偶数端口是用于server与设备进行交互的,可以让server直接从设备中读取数据,
而奇数端口是用来与设备的adb进行连接通信的。(偶数传数据进行交互,奇数用来维持与设备(pc)进行连接通信)
3)adb server(服务器)
Server,该组件管理客户端和后台程序之间的通信,作为一个后台的程序运行在PC端。
当一个server开启的时候,会自动绑定并且监听5037端口,接收client通过该端口发送过来的命令。
同时server还会对5555-5585间的奇数端口进行扫描,进行对已连接设备的定位。
结语:sunt觉得,每次在问题的解决上,再多学习一点,总会有新的收获~~(●—●)!