引言
Android Debug Bridge(简称 ADB)是 Android SDK 中的一个工具,它使得开发人员能够管理设备或手机壳上的调试,还可以进行很多手机操作,例如安装软件、运行 shell 命令等等。本文将详细介绍 ADB 的各种命令及其用法。
ADB 版本信息
首先,我们来看一下 ADB 的版本信息:
Android Debug Bridge version 1.0.41
Version 35.0.2-12147458
Installed as C:\WINDOWS\system32\adb.exe
Running on Windows 10.0.26100全局选项
-a:监听所有网络接口,而不仅仅是 localhost。-d:使用 USB 设备(如果连接多个设备则会报错)。-e:使用 TCP/IP 设备(如果有多个 TCP/IP 设备可用则会报错)。-s SERIAL:使用指定序列号的设备(覆盖$ANDROID_SERIAL)。-t ID:使用指定传输 ID 的设备。-H:ADB 服务器主机名(默认 localhost)。-P:ADB 服务器端口(默认 5037)。-L SOCKET:监听指定套接字的 ADB 服务器(默认 tcp:localhost:5037)。--one-device SERIAL|USB:仅与一个 USB 设备连接,需与start-server或server nodaemon一起使用。--exit-on-write-error:如果 stdout 关闭则退出。
通用命令
devices [-l]:列出连接的设备(-l为长输出)。help:显示帮助信息。version:显示版本号。
网络相关命令
connect HOST[:PORT]:通过 TCP/IP 连接到设备(默认端口 5555)。disconnect [HOST[:PORT]]:断开与指定 TCP/IP 设备的连接(默认端口 5555),或断开所有连接。pair HOST[:PORT] [PAIRING CODE]:与设备进行安全 TCP/IP 通信配对。forward --list:列出所有转发套接字连接。forward [--no-rebind] LOCAL REMOTE:使用指定的本地和远程套接字进行转发。forward --remove LOCAL:移除特定的转发套接字连接。forward --remove-all:移除所有转发套接字连接。reverse --list:列出设备上的所有反向套接字连接。reverse [--no-rebind] REMOTE LOCAL:使用指定的远程和本地套接字进行反向转发。reverse --remove REMOTE:移除特定的反向套接字连接。reverse --remove-all:移除设备上的所有反向套接字连接。mdns check:检查 mdns 发现是否可用。mdns services:列出所有发现的 mdns 服务。
文件传输
push [--sync] [-z ALGORITHM] [-Z] LOCAL... REMOTE:将本地文件/目录复制到设备。pull [-a] [-z ALGORITHM] [-Z] REMOTE... LOCAL:从设备复制文件/目录。sync [-l] [-z ALGORITHM] [-Z] [all|data|odm|oem|product|system|system_ext|vendor]:将本地构建同步到设备。
Shell 命令
shell [-e ESCAPE] [-n] [-Tt] [-x] [COMMAND...]:运行远程 shell 命令(如果没有命令则进入交互式 shell)。emu COMMAND:运行模拟器控制台命令。
应用安装
install [-lrtsdg] [--instant] PACKAGE:将单个包推送到设备并安装。install-multiple [-lrtsdpg] [--instant] PACKAGE...:推送多个 APK 到设备进行单次安装。uninstall [-k] PACKAGE:从设备中移除应用包。
调试
bugreport [PATH]:将 bug 报告写入指定路径。jdwp:列出托管 JDWP 传输的进程 ID。logcat:显示设备日志。
安全
disable-verity:在 userdebug 构建上禁用 dm-verity 检查。enable-verity:在 userdebug 构建上重新启用 dm-verity 检查。keygen FILE:生成 ADB 公钥/私钥。
脚本
wait-for[-TRANSPORT]-STATE...:等待设备进入指定状态。get-state:打印设备状态。get-serialno:打印序列号。get-devpath:打印设备路径。remount [-R]:重新挂载分区为读写。reboot [bootloader|recovery|sideload|sideload-auto-reboot]:重启设备。sideload OTAPACKAGE:侧载 OTA 包。root:以 root 权限重启 adbd。unroot:不以 root 权限重启 adbd。usb:重启 adbd 监听 USB。tcpip PORT:重启 adbd 监听 TCP 端口。
内部调试
start-server:确保 ADB 服务器正在运行。kill-server:如果 ADB 服务器正在运行则杀死它。reconnect:从主机侧强制重新连接。reconnect device:从设备侧强制重新连接。reconnect offline:重置离线/未授权设备以强制重新连接。
USB 相关命令
attach:附加一个分离的 USB 设备。detach:从 USB 设备分离,允许其他进程使用。
环境变量
$ADB_TRACE:记录调试信息的列表。$ADB_VENDOR_KEYS:冒号分隔的密钥列表。$ANDROID_SERIAL:要连接的序列号。$ANDROID_LOG_TAGS:logcat 使用的标签。$ADB_LOCAL_TRANSPORT_MAX_PORT:最大模拟器扫描端口。$ADB_MDNS_AUTO_CONNECT:允许自动连接的 mdns 服务列表。
结语
通过本文的介绍,相信你对 ADB 工具及其命令有了更深入的了解。ADB 是一个非常强大的工具,掌握其使用方法可以大大提高 Android 开发的效率。希望这篇指南对你有所帮助!
评论