七零部落格
思则大道至简,疑则谜团重重!
思则大道至简,疑则谜团重重!
本文介绍如何通过网络(尤指无线网络)与Android的adbd进行连接。
原理:
adb server: 计算机上的一个服务进程,进程名为adb
adb daemon: Android 手机上的一个服务进程,进程名为adbd
adb client: 你可以认为是计算机上的一个终端窗口,进程名也为adb
你的指令通过adb client 交给adb server,server和daemon之间进行通讯。
因此,这里建立的连接实际上是server和daemon之间的连接。
有三种方法:
这个没什么技巧的。
1.手机:让adbd监听指定端口
#以下指令必须以root权限运行
#setprop 是指set properties,用法 setprop
setprop service.adb.tcp.port 5555
stop adbd #停止adbd
start adbd #启动adbd
2.手机:连接网络(3G或者WLAN)
假定你获得的IP地址为192.168.1.102
3.计算机:连接手机
adb connect 192.168.1.102:5555
4.计算机:检查是否成功
adb get-state
应当输出device
或者emulator-5555
,这取决于你的设置。
5.如何改回原先状态(通过USB连接)
setprop service.adb.tcp.port -1 stop adbd
start adbd
这是最简单的方法,但是成功率不高。我们先看一下如何实现:
adb tcpip 5555 #让adbd重新启动,并监听端口5555 adb connect 192.168.0.101:5555
改回原先状态:
adb usb
细心的朋友应该已经发现了,通过adb发出的命令是用户级的(实际在手机上的用户为shell),而切换监听方式所需的权限需要root才行。
这就是为什么会失败。
如果你的手机有足够的权限的话,你可以试试
adb root
如果成功的话,再执行上面的命令。