在adb的说明文档中提到:
“An ADB transport models a connection between the ADB server and one device
or emulator. There are currently two kinds of transports:
– USB transports, for physical devices through USB
– Local transports, for emulators running on the host, connected to
the server through TCP”
大意是说,在物理设备上,adb是通过USB连接到设备上的,而在模拟器上,adb是通过TCP协议连接到设备上的。实际上在物理设备上,也可以让adb 通过TCP协议来连接设备(当然前提条件是你的设备要有网口)。首先看一下下面这段源代码,出自system/core/adb/adb.c
1, 确认本机PC 没有任何adb 设备连接,包括模拟器和usb连接, 即 使用
“adb devices” 命令后, 列表显示为空, 这个是为了后面敲命令容易一些
2, 将远程android设备接入wifi, 并查看其IP地址:设置—〉无线或网络—〉WLAN设置—〉按menu键并选择“高级”选项—〉IP 地址 例如192.168.2.11
3, 本机command 命令下执行 ping 192.168.2.11, 如果ping成功,说明可以连接
4, 执行 adb connect 192.168.2.11
如果显示连接成功,则可继续执行后面的操作;如果不成功,如显示:
unable to connect to 192.168.2.11:5555
有可能是设备监听端口的问题,则可以在手机终端执行如下命令:
su //获取root权限
setprop service.adb.tcp.port 5555 //设置监听的端口,端口可以自定义,如5554,5555是默认的
stop adbd //关闭adbd
start adbd //重新启动adbd
手机终端的下载程序可以在这里下载: “终端模拟器”
执行这个的前提是你手机可以root权限,如果没有root权限仍然不能执行su
获得root权限的方法很多,手机型号不同,获取方法也有差别,网上很多方法,这里不再细述(对调试开发者,获得root权限是非常必要的)
5, adb connect ip 成功以后可以执行原来usb连接时的所有命令,如adb install, adb logcat等。