Android调试桥(英語:Android Debug Bridge,简称:ADB),是一种拥有众多功能的、用于调试Android设备的命令行工具。开发者可以通过它与Android设备进行通信。ADB可以执行各种设备操作(例如安装和调试应用,传输文件)[1],并提供对Unix shell(用于在设备上运行各种命令)的访问权限。它是一种客户端服务器程序,包括客户端(adb)、守护进程(adbd)、服务器三个组件。[2]

Android Debug Bridge
在 GNOME Terminal启动ADB服务器, which then enumerates the devices. After that, a shell is opened on the device being debugged to run the uname command.
GNOME Terminal启动ADB服务器, which then enumerates the devices. After that, a shell is opened on the device being debugged to run the uname command.
原作者Google
当前版本34.0.1 (March 2023)
源代码库 編輯維基數據鏈接
编程语言C++
操作系统Windows, Linux, macOS
许可协议 編輯維基數據鏈接
网站developer.android.com/studio/command-line/adb 编辑维基数据

实用命令

编辑
常见命令[3]
命令 备注
adb pair ip:port Wi-Fi 连接前配对设备
adb connect ip:port 通过 Wi-Fi 连接设备
adb shell pm disable-user <包名> 停用应用
adb uninstall [-k] <包名> 卸载应用,可选项-k表示卸载时保留数据
adb pull <设备里的文件路径> [电脑上的目录] 复制设备里的文件到电脑
adb push <电脑上的文件路径> <设备里的目录> 复制电脑里的文件到设备

工作原理

编辑

当某个ADB客户端启动时,它会检查是否存在正在运行的ADB服务进程。若不存在,它将启动服务器进程。服务器在启动后会与本地TCP端口5037绑定,监听ADB客户端发出的命令(所有ADB客户端均通过端口5037与ADB服务器通信),并尝试与所有正在运行的设备建立连接。它通过扫描5555到5585之间(该范围供前16个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现ADB守护进程,便会与相应的端口建立连接。每个模拟器都使用一对按顺序排列的端口,用于控制台连接的偶数号端口和用于ADB连接的奇数号端口,如下所示:

模拟器1,控制台:5554

模拟器1,adb:5555

模拟器2,控制台:5556

模拟器2,adb:5557,依此类推……

如上所示,在端口5555处与ADB连接的模拟器与控制台监听端口5554的模拟器是同一个。

服务器与所有设备均建立连接后,便可以使用ADB命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个ADB客户端的命令,因此可以从任意客户端(或从某个脚本)控制任意设备。[4]

启用调试桥

编辑

要通过USB连接的设备上使用ADB,必须在设备的系统设置中启用USB调试(位于开发者选项下)。

在搭载 Android 4.2 及更高版本的设备上,“开发者选项”选项默认处于隐藏状态。如需将其显示出来,需要依次转到设置→关于手机,连续点按版本号若干次。返回上一屏幕,在底部可以找到开发者选项。(在不同的系统上,“开发者选项”选项所在的位置或名字可能有所不同)。

显示出“开发者选项”后,转至开发者选项→USB调试,将其选项改为开启后,便可通过USB连接设备。(当尝试连接搭载 Android 4.2.2 或更高版本的设备时,因为Android引入了RSA密钥验证机制,所以在该版本后,系统会显示一个对话框,询问您是否接受允许通过此计算机进行调试的RSA密钥。)若需验证设备是否连接,可以在ADB服务器中执行adb devices。如果设备已连接,您将看到设备名称以“设备”形式列出。[4][5]

Android 11 以上的系统可使用無線調試,輸入配對碼連接。Shizuku可以方便地讓Android 11以上的手機在連接無線網路時連接自身的ADB,並为需要adb許可權的程式提供方便的API,該程式可在Google Play 商店或 Github 免費取得。[6][7]

参考资料

编辑
  1. ^ Things You Can Do with Android's adb Command. dummies. [2019-09-18]. (原始内容存档于2018-05-15) (英语). 
  2. ^ Android Debug Bridge (adb). Android Developers. [2019-09-17]. (原始内容存档于2019-09-14) (英语). 
  3. ^ Ma, Zhuang, mzlogin/awesome-adb, 2025-01-14 [2025-01-14], (原始内容存档于2025-01-14) 
  4. ^ 4.0 4.1 Android Debug Bridge (adb). Android Developers. [2019-09-18]. (原始内容存档于2019-09-14) (英语). 
  5. ^ Published. How to enable USB debugging mode on Android. Punch Newspapers. [2019-09-18]. (原始内容存档于2019-09-17) (美国英语). 
  6. ^ User manual | Shizuku. shizuku.rikka.app. [2024-07-18]. (原始内容存档于2025-01-30). 
  7. ^ RikkaApps/Shizuku, RikkaApps, 2025-01-14 [2025-01-14], (原始内容存档于2025-01-24) 

📚 Artikel Terkait di Wikipedia

调试工具

CA/EZTEST(Cics Interactive test/debug) CodeView DBG - A PHP Debugger and Profiler dbx DebugView DDD, Data Display Debugger DEBUG DOS Command DuxDebugger(页面存档备份,存于互联网档案馆)—

86-DOS

CLEAR COPY DIR ERASE(英语:del (command)) RENAME(英语:ren (command)) TYPE(英语:TYPE (DOS command)) ASM CHKDSK DEBUG(英语:Debug (command)) EDLIN(英语:Edlin) HEX2BIN

OS/2

break cache call cd chcp chdir chkdsk cls cmd codepage command comp copy createdd date ddinstal debug del detach dir diskcomp diskcopy doskey dpath eautil

调试

McConnell, S. Code Complete 2nd. Microsoft Press. 2004. ISBN 978-0-735-61967-8.  The First Computer Bug. Naval History and Heritage Command. [2026-05-13]. 

Xilinx Vivado

于2012年4月推出,它是一个集成开发环境(IDE),具有在共享可伸缩数据模型(scalable data model)和公共调试环境(common debug environment)上构建的系统到IC级工具。Vivado 包含用于综合和验证基于 C 的算法 IP 核的电子系统级(ESL)设计工具;基于标准的算法和

.NET

Win32.Primitives System.AppContext System.Collections System.Diagnostics.Debug System.Diagnostics.Tools System.Diagnostics.Tracing System.Globalization

科学领域中的女性

系統及第一個高级商用電腦程式語言COBOL ,是世上最早期的程式設計師之一,同時也是最早期的女性程式設計師之一,有著「COBOL之母」的美譽。知名的電腦程式術語 "Debug",典故正是來自葛麗絲發現電腦出錯而排除誤入電腦的飛蛾 (bug) 。 瑞秋·卡森(英語:Rachel Louise

非官方补丁

because Obsidian, basically.  Wilde, Tyler. Community heroes: modders debug and restore cut content in Knights of the Old Republic II. PC Gamer. 2012-07-26