文章目录
  1. 1. 前言
  2. 2. 原理
  3. 3. 方法
  4. 4. 关于网络
    1. 4.1. 手机不做热点
    2. 4.2. 手机做热点
  5. 5. 小结
  6. 6. 后记

前言

之前遇到一个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去操作异地的手机,获取一些调试信息。关键是用户手机是通过公网可达。