admin 发表于 2018-6-5 10:46:41

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地址:adb shellnetcfg前提:(设备已经和PC建立了usb连接)确保电脑和Android设备连接在同一个WIFI网络环境(同一个局域网下,进行通信)3、本机command命令下执行pingandroid设备的IP例如ping 10.129.49.143,如果ping成功,说明可以连接ping成功
https://img-blog.csdn.net/20170207165130714?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2xseTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center4,执行 adb connect
知道设备IP地址之后,就可以用adb connect命令通过IP和端口号连接adb。adb connect 10.129.49.143如果显示连接成功,则可继续执行后面的操作;如果不成功,如下图显示:connect拒绝https://img-blog.csdn.net/20170207165227740?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2xseTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
用adb tcpip模式重启adb
adb tcpip 5555https://img-blog.csdn.net/20170207165301575?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2xseTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
连接成功,connected to 10.129.49.143:5555
adb connect ip连接成功以后可以执行原来usb连接时的所有命令如adb install,adb logcat等,下图为项目测试时wifi连接android设备,在androidstudio环境,查看实时loghttps://img-blog.csdn.net/20170207165332990?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2xseTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
AndroidDebug Bridge
我们一般简称为adb,它是一个非常强大的命令行工具,通过adb工具,你能够与你的android设备进行通信。adb是基于C/S模式的程序,包含以下三个组件:https://img-blog.csdn.net/20170207165407131?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2xseTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center1)adb client(客户端)client是运行在PC端的,该组件发送命令,可以通过发出adb命令从命令行终端调用客户端。每当我们发起一个adb命令的时候,就会开启一个client程序。当然,当我们开启DDMS或者ADT的时候,也会自动创建client。当我们开启一个client的时候,它首先会去检测后台是否已经有一个server程序在运行着,否则会开启一个adb-server进程。所有的client都是通过5037端口与adb-server进行通信的。2)adb daemon(adbd后台程序)Daemon,该组件作为一个后台进程运行在模拟器/真实Android设备中,在设备上运行命令。daemon使用端口的范围是5554-5585,每个模拟器/设备连接到PC端时,总会开启这样一个后台进程,并且为其分配了两个连续的端口,比如:Emulator1, console: 5554Emulator1, adb: 5555因为每个设备都分一组两个端口,所以adb连接手机的最大数量为16。端口的作用,在这两个端口中,其中偶数端口是用于server与设备进行交互的,可以让server直接从设备中读取数据,而奇数端口是用来与设备的adbd进行连接通信的。3)adb server(服务器)Server,该组件管理客户端和后台程序之间的通信,作为一个后台的程序运行在PC端。当一个server开启的时候,会自动绑定并且监听5037端口,接收client通过该端口发送过来的命令。同时server还会对5555-5585间的奇数端口进行扫描,进行对已连接设备的定位。
来自:https://blog.csdn.net/wlly1/article/details/54912079
页: [1]
查看完整版本: adb通过wifi连接android设备