前言
之前遇到一个bug需要调试OTG,所以不能通过数据线直接输出log。所以想到用网络来使用adb。
网上讲这个的很多。我这里算是一个详细的,亲自尝试的总结。要知道网上的东西很多都是相互copy,没有经过动手尝试的,所以参考我这里就好了,亲测!
原理
原理其实是很简单的,就是让手机端的adbd监听一个tcp端口,pc端的adb命令通过该端口进行操作。
这么说吧,其实就是adb这个软件实现了手机端和pc端的网络通信。
和使用数据线的情况相比就是数据经过了网络传输。
因此首先要做的事情就是让adbd监听一个端口。
方法
网上的文章一般给出了两种监听端口的方式:
1、通过usb使用adb tcpip
2、通过手机的终端或者apk应用,前提当然是要root的
setprop service.adb.tcp.port 5555 stop adbd start adbd
我亲自测试的是方法1,因为作为开发同事来说,方法1是最方便直接的,相比方法2就比较麻烦。
手机端监听了端口,pc端就去连接好了,命令如下:
可以看出,如果adb tcpip 的端口不是5555的话,连接的时候一定要有端口号
,即adb connect IP:port
关于网络
手机不做热点
这种情况只要知道手机的ip地址就可以了。可以通过点击连接的wifi查看ip地址,也可以去状态信息中查看。
手机做热点
如果是手机做热点,pc来连接这个热点,手机的ip地址默认是192.168.43.1
小结
经过我测试的,个人认为符合开发同事使用的,简单有效方式如下: 1、打开手机wifi热点 2、连接数据线,确保可以使用adb,执行adb tcpip 5555 3、pc通过无线网卡,如360wifi,连接手机热点 4、pc端执行adb connect 192.168.43.1
后记
其实手机端就是一个server,pc端就是一个client。只要网路可以访问手机server,不管是否在一个局域网都是可以用这种方式使用adb的。
我家的ip是外网可以访问的,晚上我就带个手机回去实验,明天就可以在办公室看看结果。理论是没问题的。
如果客户有复现了一个bug,我们这里又不能复现,我们也可以尝试用这种方式,adb去操作异地的手机,获取一些调试信息。关键是用户手机是通过公网可达。