Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

1. ADB 的原理

1.1. 什么的ADB?

ADB的全称是Android Debug Bridge,翻译成中文是:Android调试桥接器。ADB是Android开发工具包(SDK)中的一个多功能命令行工具,最初由Google开发,允许开发者与Android设备进行通信,用于Android设备的调试和测试,如:安装和调试应用、访问设备文件系统等。

现在ADB工具不仅用于Android设备的调试,还广泛应用于各种嵌入式设备的调试。

1.2. ADB的组成

ADB提供了一个客户端-服务器模型,通过这个模型,开发者可以在计算机上运行命令,然后这些命令会被发送到连接的Android设备或模拟器上执行。ADB包括三个主要部分:

  1. 客户端(Client)

    • 运行在开发者的计算机上。
    • 负责发送命令到服务器。
    • 通常通过终端或IDE(如Android Studio)中的ADB命令行界面来使用。
  2. 服务器(Server)

    • 作为后台进程运行在开发者的计算机上。
    • 管理客户端和守护进程(Daemon)之间的通信。
    • 负责发现连接的Android设备和模拟器。

    说明:

    • ADB服务器默认监听TCP端口5037。你可以使用netstat -an | grep 5037命令验证ADB服务器是否在监听该端口.
    • Linux下可以使用ps aux | grep adb命令查看ADB服务器的进程号
  3. 守护进程(Daemon)

    • 运行在每个Android设备或模拟器上。
    • 负责在设备上执行客户端发送的命令。
    • 通过USB或Wi-Fi与服务器通信。

1.3. ADB的原理

  1. 启动过程

    • 当开发者运行一个ADB命令时,客户端首先启动服务器(如果服务器尚未运行)。
    • 服务器启动后,会与所有连接的设备上的守护进程建立连接。
  2. 通信过程

    • 客户端发送命令到服务器。
    • 服务器将命令转发给目标设备上的守护进程。
    • 守护进程执行命令并将结果返回给服务器。
    • 服务器将结果返回给客户端。
  3. 功能实现

    • ADB通过上述通信机制实现多种功能,如文件传输、shell命令执行、应用安装和卸载、日志捕获等。

2. ADB的安装

2.1. Windows

  1. 浏览器进入 adb官网下载地址.
  2. 下载适用于 Windows 的 SDK Platform-Tools.
  3. 接下来会弹出“条款协议”,勾选“同意”并点击“下载”。
  4. 解压安装:直接解压到需要存放的安装目录。
  5. 配置环境变量:将adb.exe所在的目录添加到环境变量Path中。
  6. 验证adb是否安装成功:打开命令行,输入adb --version命令,如果出现adb版本号,则安装成功。

2.2. Linux(Ubuntu)

1
2
3
4
# 安装adb
sudo apt-get install android-tools-adb
# 验证adb是否安装成功
adb --version

2.3. macOS

1
2
3
4
# 安装adb
brew install --cask android-platform-tools
# 验证adb是否安装成功
adb --version

3. ADB的用法

3.1. 查看设备列表

1
2
3
adb devices
List of devices attached
PQY0221927018610 device

3.2. 进入设备的命令行(Shell)环境

1
2
3
4
# 设备列表只有单个设备时,通过以下命令进入设备
adb shell
# 设备列表有多个设备时,通过以下命令指定设备ID
adb -s <did> shell

3.3. 连接无线设备

首先,要确保你的设备和电脑连接到同一个Wi-Fi网络(局域网)。

连接/断开无线设备:

1
2
3
4
# 建立连接
adb connect <ip:port>
# 断开连接
adb disconnect <ip:port>

说明:

  • ip是你要连接的无线设备的IP地址。
  • port是你要连接的设备的端口号。端口号是可选的,如果一个IP下有多个设备则需要加上端口号(如:一台电脑里开启了多个模拟器)。

Demo演示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 连接无线设备
adb connect 192.168.1.100
# 2. 检查设备是否连接成功
adb devices
List of devices attached
192.168.1.100 device
# 3. 进入设备的shell环境
adb shell
# 4. 执行相关操作
# 。。。
# 5. 退出设备的shell环境
exit
# 6. 断开连接
adb disconnect 192.168.1.100

3.4. 重启adb服务

1
2
3
4
# 停止当前运行的ADB服务器进程
adb kill-server
# 启动ADB的服务器
adb start-server
  • 应用场景: 当你的设备USB连接正常但adb却无法查看到设备了,可以尝试重启adb服务来解决。
  • 命令说明: kill-server停止adb服务后,再次使用adb命令时,一般会自动重启adb的服务;如果没有重启,可以通过上面的命令手动启动。

3.5. 拉取或推送文件

1
2
3
4
# 从本地复制文件到设备
adb push <local_path> <remote_path>
# 从设备复制文件到本地
adb pull <remote_path> <local_path>

3.6. 其他常用指令

1
2
3
4
5
6
7
8
# 安装应用
adb install <path_to_apk>
# -d 指示命令发送到唯一连接的USB设备。如果存在多个USB设备,则返回错误。
adb -d <command>
# -e 指示命令发送到唯一运行的模拟器。如果存在多个模拟器运行,则返回错误。
adb -e <command>
# -s 指示命令发送到具有给定序列号或限定符的设备或模拟器。
adb -s <command>
推荐阅读
博客建站4 - ssh远程连接服务器 博客建站4 - ssh远程连接服务器 博客建站2 - 选择网站服务器 博客建站2 - 选择网站服务器 Linux C++ 开发1 - 搭建C++开发环境 Linux C++ 开发1 - 搭建C++开发环境

评论