• 基本用法
  • 命令语法
  • 为命令指定目标设备
  • 启动/停止
  • 查看 adb 版本
  • 以 root 权限运行 adbd
  • 指定 adb server 的网络端口
  • 设备连接管理
  • 查询已连接设备/模拟器
  • USB 连接
  • 无线连接(需要借助 USB 线)
  • 无线连接(无需借助 USB 线)

基本用法

命令语法

adb 命令的基本语法如下:

adb [-d|-e|-s <serialNumber>] <command>

[-d|-e|-s <serialNumber>] 这一部分,直接使用 adb <command>

为命令指定目标设备

如果有多个设备/模拟器连接,则需要为命令指定目标设备。

参数

含义

-d

指定当前唯一通过 USB 连接的 Android 设备为命令目标

-e

指定当前唯一运行的模拟器为命令目标

-s <serialNumber>

指定相应 serialNumber 号的设备/模拟器为命令目标

-s <serialNumber> 参数,serialNumber 可以通过 adb devices

$ adb devices List of devices attached cf264b8f device emulator-5554 device


cf264b8f 和 emulator-5554 即为 serialNumber。比如这时想指定 cf264b8f

adb -s cf264b8f shell wm size


遇到多设备/模拟器的情况均使用这几个参数为命令指定目标设备,下文中为简化描述,不再重复。

启动/停止

启动 adb server 命令:


adb start-server


(一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起。)

停止 adb server 命令:


adb kill-server


查看 adb 版本

命令:


adb version


示例输出:


Android Debug Bridge version 1.0.36 Revision 8f855a3d9b35-android


以 root 权限运行 adbd

adb 的运行原理是 PC 端的 adb server 与手机端的守护进程 adbd 建立连接,然后 PC 端的 adb client 通过 adb server 转发命令,adbd 接收命令后解析运行。

adb xxx 执行。这时可以 adb shell 然后 su

命令:


adb root


正常输出:


restarting adbd as root


adb shell,看看命令行提示符是不是变成 #adb root 命令让 adbd 以 root 权限执行,比如三星的部分机型,会提示 adbd cannot run as root in production builds,此时可以先安装 adbd Insecure,然后 adb rootadb unroot

指定 adb server 的网络端口

命令:

adb -P <port> start-server

默认端口为 5037。

设备连接管理

查询已连接设备/模拟器

命令:


adb devices


输出示例:


List of devices attached cf264b8f device emulator-5554 device


[serialNumber] [state],serialNumber 即我们常说的 SN,state 有如下几种:offlinedeviceno devicecf264b8f 与 emulator-5554 分别是它们的 SN。从 emulator-5554

常见异常输出:

  1. 没有设备/模拟器连接成功。 List of devices attached
  2. 设备/模拟器未连接到 adb 或无响应。 List of devices attached cf264b8f offline

USB 连接

通过 USB 连接来正常使用 adb 需要保证几点:

  1. 硬件状态正常。
    包括 Android 设备处于正常开机状态,USB 连接线和各种接口完好。
  2. Android 设备的开发者选项和 USB 调试模式已开启。
    可以到「设置」-「开发者选项」-「Android 调试」查看。
    如果在设置里找不到开发者选项,那需要通过一个彩蛋来让它显示出来:在「设置」-「关于手机」连续点击「版本号」7 次。
  3. 设备驱动状态正常。
    这一点貌似在 Linux 和 Mac OS X 下不用操心,在 Windows 下有可能遇到需要安装驱动的情况,确认这一点可以右键「计算机」-「属性」,到「设备管理器」里查看相关设备上是否有黄色感叹号或问号,如果没有就说明驱动状态已经好了。否则可以下载一个手机助手类程序来安装驱动先。
  4. 通过 USB 线连接好电脑和设备后确认状态。 adb devices 如果能看到 xxxxxx device 说明连接成功。

无线连接(需要借助 USB 线)

除了可以通过 USB 连接设备与电脑来使用 adb,也可以通过无线连接——虽然连接过程中也有需要使用 USB 的步骤,但是连接成功之后你的设备就可以在一定范围内摆脱 USB 连接线的限制啦!

操作步骤:

  1. 将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。
  2. 将设备与电脑通过 USB 线连接。
    应确保连接成功(可运行 

adb devices

  1. 让设备在 5555 端口监听 TCP/IP 连接: adb tcpip 5555
  2. 断开 USB 连接。
  3. 找到设备的 IP 地址。
    一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用下文里 查看设备信息 - IP 地址
  4. 通过 IP 地址连接设备。
adb connect <device-ip-address>

这里的 <device-ip-address>

  1. 确认连接状态。adb devices如果能看到
<device-ip-address>:5555 device

说明连接成功。

adb connect <device-ip-address>adb kill-server

断开无线连接

命令:

adb disconnect <device-ip-address>

无线连接(无需借助 USB 线)

注:需要 root 权限。

上一节「无线连接(需要借助 USB 线)」是官方文档里介绍的方法,需要借助于 USB 数据线来实现无线连接。

既然我们想要实现无线连接,那能不能所有步骤下来都是无线的呢?答案是能的。

  1. 在 Android 设备上安装一个终端模拟器。
    已经安装过的设备可以跳过此步。我使用的终端模拟器下载地址是:Terminal Emulator for Android Downloads
  2. 将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。
  3. 打开 Android 设备上的终端模拟器,在里面依次运行命令: su setprop service.adb.tcp.port 5555
  4. 找到 Android 设备的 IP 地址。
    一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用下文里 查看设备信息 - IP 地址
  5. 在电脑上通过 adb 和 IP 地址连接 Android 设备。
adb connect <device-ip-address>

这里的 <device-ip-address>如果能看到 connected to <device-ip-address>:5555