Android Debug Bridge (adb)
1、环境配置
vim ~/.bashrc
-------------------------------
# Android
export ANDROID_HOME=/home/kxy/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/tools
-------------------------------
source ~/.bashrc
# 查看版本
adb --version
2、无线连接设备
- 设备与要运行adb的电脑连接到同一局域网
- 将设备与电脑通过USB线连接,确保连接成功:adb devices能看到该设备
- 让设备在 5555 端口监听TCP/IP连接:adb -s devicename tcpip 5555
- 断开USB线,adb连接设备ip:adb connect 10.42.0.161
- 查看链接设备:adb devices
3、adb命令
# 查看当前连接设备
adb devices
# 登录设备shell
adb shell
# 如果发现多个设备 -s devicename
adb -s devicename <command>
# 查看日志
adb -s 10.42.0.159 logcat
# 安装apk文件
adb -s device install xxx.apk
# 从电脑上发送文件到设备
adb push <local_path> <remote_path>
# 从设备上下载文件到电脑
adb pull <remote_path> <local_path>
Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:
客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。
adb 包含在 Android SDK 平台工具软件包中。您可以使用 SDK 管理器下载此软件包,该管理器会将其安装在 android_sdk/platform-tools/ 下。或者,如果您需要独立的 Android SDK 平台工具软件包,也可以点击此处进行下载。
如需了解如何连接设备以使用 ADB,包括如何使用 Connection Assistant 对常见问题进行排查,请参阅在硬件设备上运行应用。
adb 的工作原理
当您启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它会启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。
然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接。请注意,每个模拟器都使用一对按顺序排列的端口 - 用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口。例如:
模拟器 1,控制台:5554
模拟器 1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557
依此类推
如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。
服务器与所有设备均建立连接后,您便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此您可以从任意客户端(或从某个脚本)控制任意设备。
Q.E.D.