不用 USB 线,通过无线 WIFI 用 adb 操作手机 - XieSir

时间:2024-02-21 17:06:24

不用 USB 线,通过无线 WIFI 用 adb 操作手机

 

1. 在手机上启用 adb 调试

要在通过 USB 连接的手机上使用 adb,必须在设备的“设置”中启用 “USB调试 (USB debugging)”(位于 “开发者选项 (Developer options)” 下)。
注:在运行 Android 4.2 及更高版本的设备上,Developer options 屏幕默认情况下处于隐藏状态。如需将其显示出来,请转到 Settings > About phone 并点按 Build number 七次。返回上一屏幕,在底部可以找到 Developer options。

2. 下载并运行 ADB
Google 官方提供了 ADB and Fastboot Tools下载,下载后解压即可运行。
现在,您可以将手机通过 USB 线与 PC 连接。执行 adb devices 来验证设备是否连接。如果已连接,将看到设备名称以“设备”形式列示。
注:当您连接运行 Android 4.2.2 或更高版本的设备时,系统将显示一个对话框,询问您是否接受允许在这台计算机上调试的 RSA 密钥。这种安全机制可以保护用户设备,因为它可以确保只有在您能够解锁设备并确认对话框的情况下才能执行 USB 调试和其他 ADB 命令。

例如:
在未接受“允许在这台计算机上调试的 RSA 密钥”前,执行的结果
> adb devices
List of devices attached
cff193186f5168e unauthorized
192.168.1.3:5555 device

在接受“允许在这台计算机上调试的 RSA 密钥”后,执行的结果
> adb devices
List of devices attached
cff193186f5168e device
192.168.1.3:5555 device

3. 通过 WLAN 连接到设备
a. 将 Android 设备和 adb 主计算机连接到这两者都可以访问的常用 WLAN 网络。使用 USB 电缆将手机连接到主计算机。
b. 设置目标设备以侦听端口 5555 上的 TCP/IP 连接。
> adb tcpip 5555
c. 从目标设备断开 USB 电缆连接。
d. 查找 Android 设备的 IP 地址。例如,可以通过访问 Settings > Wi-Fi Settings > Advanced > IP address 查找 IP 地址。
e. 连接至设备,通过 IP 地址识别此设备。
> adb connect device_ip_address
f. 请确认您的主计算机已连接至目标设备:
> adb devices
List of devices attached
device_ip_address:5555 device
现在,您可以开始操作了!

g. 如果要回到 USB 连接模式:
> adb usb

4. 如果 adb 连接丢失:
通过再次执行 adb connect 步骤重新连接。
如果无法连接,则重置 adb 主机:
> adb kill-server
然后,从头开始操作。

5. 将命令发送至特定设备
如果多个模拟器/设备实例正在运行,在发出 adb 命令时您必须指定一个目标实例。为此,请在命令中使用 -s 选项。以下是 -s 选项的用法:
> adb -s serial_number command
如上所示,您使用由 adb 分配的序列号为命令指定目标实例。
如果您有多个设备可用(硬件或模拟设备),但只有一个设备是模拟器,则使用 -e 选项将命令发送至该模拟器。同样,如果有多个设备,但只连接了一个硬件设备,则使用 -d 选项将命令发送至该硬件设备。

6. 常用 ADB 命令
a. 安装应用
可以使用 adb 从开发计算机复制应用,并将其安装到模拟器/设备实例上。为此,请使用 install 命令。使用此命令,您必须指定您要安装的 APK 文件的路径:
> adb install path_to_apk
b. 将文件复制到设备/从设备复制文件
可以使用 adb 命令 pull 和 push 将文件复制到模拟器/设备实例或从其中复制文件。pull 和 push 命令允许您将任意目录和文件复制到模拟器/设备实例中的任意位置。
要从模拟器或设备复制文件或目录(及其子目录),请使用
> adb pull remote local
要将文件文件或目录(及其子目录)复制到模拟器或设备,请使用
> adb push local remote
在上述命令中,local 和 remote 指的是开发计算机(本地)和模拟器/设备实例(远程)上目标文件/目录的路径。例如:
> adb push foo.txt /sdcard/foo.txt
> adb pull /sdcard/foo.zip
c. 停止 adb 服务器
在某些情况下,您可能需要终止 adb 服务器进程,然后重启它以解决问题(例如,如果 adb 不响应命令)。
要停止 adb 服务器,请使用 adb kill-server 命令。然后,您可以通过发出任意其他 adb 命令重启服务器。
d. 发出 shell 命令
可以使用 shell 命令通过 adb 发出设备命令,可以进入或不进入模拟器/设备实例上的 adb 远程 shell。要在不进入远程 shell 的情况下发出一个命令,请使用如下 shell 命令:
> adb [-d|-e|-s serial_number] shell shell_command
或者,使用如下命令进入模拟器/设备实例上的远程 shell:
> adb [-d|-e|-s serial_number] shell
当您准备退出远程 shell 时,按 Control + D 或输入 exit。


注:
也可以在手机上安装相关应用实现 WiFi 设置,常用应用有:WiFi ADBADB Wireless等。这时可以避免使用 USB线 连接手机和 PC 的步骤,只要在手机运行这些应用,然后在 PC 上执行 adb connect device_ip_address 命令即可。

注:

Android Studio 也可以通过 WiFi 无线调试 APP 。在 Android Studio 中 Settings -> Plugins -> Browse Repositories 搜索框输入 ADB WIFI 或 Android WiFi ADB 找到插件,安装即可。

参考文献:
https://developer.android.com/studio/command-line/adb.html
https://segmentfault.com/a/1190000003949455
http://www.jianshu.com/p/21d1b65d92a4

 

=======================================================================================

 

举例:通过 adb 查看手机里的 WiFi 密码

手机里 WiFi 密码保存在 /data/misc/wifi/ 目录下的 conf 文件中。

> adb shell // 进入adb shell
> shell@asdad:/ $ su // 获取root权限
> root@asdad:/ # cat /data/misc/wifi/*.conf // 查看 conf 文件内容

e.g.
network={
ssid = "WIFI名称" // ssid表示WIFI名称
psk = "WIFI密码" // psk是WIFI密码
key_mgmt = WPA-PSK
priortity = 19
}