adb
Android Platform Tools 34+Android Debug Bridge CLI 命令快速参考:设备发现、安装 / 卸载、logcat、shell、push / pull、端口转发,以及无线调试,并附带常用参数和实操示例。
33 条命令
设备
adb devices列出所有已连接的设备 / 模拟器及其序列号与状态(`device`、`unauthorized`、`offline`)。
-l 显示详细信息(product、model、transport);-e 只列出模拟器;-d 只列出 USB 设备
adb devices -ladb connect <ip>:<port>通过 Wi-Fi 或 TCP/IP 连接设备(默认端口 5555)。Android 11+ 上需先用 `adb pair <ip>:<port>` 完成配对。
ip:port;--one-time 会话结束时断开
adb pair 192.168.1.42:41235 && adb connect 192.168.1.42:5555adb disconnect [<ip>:<port>]断开一台或所有无线设备。不传参数则断开所有连接。
adb disconnect 192.168.1.42:5555 && adb disconnectadb -s <serial> <command>在多设备连接时指定目标设备(`<serial>` 用 `adb devices` 的值替换)。
adb -s emulator-5554 shell pm list packages安装 / 卸载
adb install <apk>安装一个 APK。`-r` 重新安装并保留数据;`-d` 允许 version-code 降级;`-t` 允许 test-only APK;`-g` 自动授予所有运行时权限。
-r;-d;-t;-g;--abi <abi>;--user <id>
adb install -r -g app-release.apkadb install-multi-package <apk1> <apk2>原子地安装一个 split APK 包——用于包含多 ABI / 多 config 的 App Bundle。
adb install-multi-package base.apk split_config.arm64.apkadb uninstall <package>按包名卸载一个应用。`-k` 保留数据 + 缓存目录。
-k 保留用户数据
adb uninstall com.example.myappLogcat
adb logcat流式输出设备的日志缓冲区。tag / 优先级过滤:`*:V`(verbose)、`*:E`(errors)。
-v threadtime;-d dump 后退出;-s <tag>;-t <N>;--pid=<pid>;-f <file> 写入文件
adb logcat *:Eadb logcat -d把当前缓冲区 dump 到 stdout 后退出(非流式)。配合 grep 做一次性检查。
-d -t 500 最近 500 行
adb logcat -d -t 200 | grep -i 'myapp'adb logcat -s <tag>:<level>只显示指定 tag 在给定级别(V/D/I/W/E)下的条目。多 tag 之间用空格分隔。
MyTag:D MyTag2:E
adb logcat -s MyApp:V ReactNative:VShell
adb shell进入设备上的交互式 shell。大多数 Unix 工具可用;`/sdcard` 是公共存储根目录。
-t 分配一个 TTY(用于交互式程序)
adb shelladb shell <command>在设备上运行单条命令并返回输出。混合主机 / 设备参数时注意正确引号。
adb shell pm list packages | grep com.example && adb shell dumpsys batteryadb shell pm list packages列出已安装的包。`-f` 显示路径,`-3` 只显示用户安装的 app,`-d` 只显示已禁用的包。
-f 路径;-3 用户 app;-d 禁用;-e 启用;-s 系统;<filter>
adb shell pm list packages -3 | head -30adb shell am start -n <package>/<activity>按 `package/activity` 全限定名启动一个 Activity。用 `am start -W` 等待启动完成。
-a <action>;-d ;--es <key> <val> 额外字符串;-W 等待
adb shell am start -n com.example/.MainActivityadb shell screencap -p /sdcard/screen.png把设备屏幕截图保存为 PNG。配合 `adb pull` 取回。
-p PNG(默认)
adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png .adb shell input <source> <command>注入输入事件。常用:`tap x y`、`swipe x1 y1 x2 y2 [ms]`、`keyevent <code>`、`text "string"`。
tap;swipe;keyevent;text;roll;press
adb shell input tap 540 1200 && adb shell input keyevent 4文件传输
adb push <local> <remote>把本地文件 / 目录复制到设备。具备 sync 语义;保留二进制文件。
--sync 只覆盖过期文件;--copy-links 保留符号链接;-p 显示进度
adb push app-debug.apk /sdcard/Download/ && adb push ./assets /sdcard/myapp/assetsadb pull <remote> <local>把设备文件 / 目录复制到主机。默认目标为 `.`(当前目录)。
-a 保留时间戳;-p 显示进度
adb pull /sdcard/screen.png ./screenshots/latest.png端口转发
adb forward tcp:<host-port> tcp:<device-port>把主机端口转发到设备端口——常用于为 Chrome 标签页打开 Chrome 远程调试套接字。
--remove;--remove-all
adb forward tcp:9222 localabstract:chrome_devtools_remoteadb reverse tcp:<device-port> tcp:<host-port>把设备端口反向转发到主机端口——当 dev server 在 `localhost:3000` 而设备需要访问时很有用。
adb reverse tcp:3000 tcp:3000 && curl http://localhost:3000/api/healthadb forward --list列出当前生效的端口转发与反向转发。配合 `adb forward --remove-all` 可重置。
adb forward --list && adb reverse --list应用管理
adb shell pm clear <package>清空指定包的应用数据 + 缓存——等同于「设置 → 应用 → 存储 → 清除数据」。
adb shell pm clear com.example.myappadb shell pm grant <package> <permission>无需 UI 弹框直接授予运行时权限(如 `android.permission.CAMERA`)——测试场景常见操作。
adb shell pm grant com.example.myapp android.permission.READ_CONTACTSadb shell am force-stop <package>强制停止一个正在运行的应用(其进程被杀死)。重新安装前台应用前常用。
adb shell am force-stop com.example.myapp && adb install -r app.apk启动 / 恢复
adb reboot重启设备。变体:`recovery`、`bootloader`、`fastboot`、`download`、`edl`。
recovery | bootloader | fastboot | download | edl
adb reboot bootloader && fastboot flashalladb sideload <zip>从恢复模式侧加载一个已签名的 OTA / factory image zip(通常通过 `adb reboot recovery` 进入)。
adb sideload ota-update.zip调试
adb shell run-as <package> <cmd>以应用 UID 身份运行命令——可调试 APK 读取自己的私有数据目录所必需。
<package> cat ./databases/my.db > /sdcard/dump.db
adb shell run-as com.example.myapp ls databasesadb shell dumpsys <service>转储某个系统服务的状态(`battery`、`window`、`activity`、`package`、`gfxinfo`、`netstats`)。
battery;activity;package;window;gfxinfo <pkg>;netstats
adb shell dumpsys gfxinfo com.example.myapp framestats服务端
adb start-server显式启动 adb server(一般情况下命令触发时会自动启动)。`kill-server` 之后执行。
adb start-serveradb kill-server停止 adb server 并断开所有设备。当 adb 卡在 `offline` 状态时很有用。
adb kill-server && adb start-server && adb devices杂项
adb --version打印 Platform Tools 版本。
adb --versionadb help列出每个 adb 子命令及其一行说明。
adb help无线调试
adb pair <ip>:<port>通过 Wi-Fi 与设备配对,使用开发者选项中显示的 6 位配对码。配对完成后用 `adb connect` 连接到实际调试端口。
<ip>:<port>
adb pair 192.168.1.42:41235相关命令速查
商标与使用声明
本批命令行工具速查手册为开源社区参考资料。文中涉及的各工具的名称、标识、商标(如 Git™、Docker™、Kubernetes®、kubectl、PostgreSQL®、MySQL®、Redis™、MongoDB®、Linux™、PowerShell™、Vim™ 等)均归对应权利人所有,此处仅为识别与参考之目的使用。
本速查手册的全部内容均为独立编写的简化自包含参考,**与任何官方文档不存在隶属、被认可或引用关系**。命令列表、参数说明、示例均为作者原创简化表达;如需权威信息,请参阅各工具的官方文档。
命令语法与参数可能在不同工具版本中有所差异。所示版本标签对应稳定发布版本;其他版本行为可能有所不同。本速查手册**不代表**商标权利人的任何偏好或推荐。
如商标或版权方认为本站部分内容存在权益侵害,请发送邮件至[email protected],我们在收到有效权属证明后,会在合理期限内修改或移除相关内容。
本网站不对因使用本站信息而产生的任何直接或间接损失承担法律责任。
关于 ADB
Android Debug Bridge(adb)是随 Android SDK Platform Tools(自 2009 年起)发布的命令行工具。它通过 USB、Wi-Fi 或 TCP/IP 把你的开发工作站与任何 Android 设备或模拟器连接起来,并暴露三个子组件:一台服务端(运行在主机上,端口 5037)、一个守护进程(`adbd` 运行在设备上),以及 `adb` CLI。当前 Platform Tools 版本线为 34+(与 Android 14 一同发布)。`adb` 是安装 APK、读取 logcat、通过 JDWP 调试应用、刷入 ROM、编写 UI 自动化脚本、推送 / 拉取文件的基础。Android 11 起加入无线调试(13+ 提供二维码配对流)。常见邻近命令包括 `fastboot`(bootloader / recovery)和 `emulator`(基于 QEMU 的 AVD)。ADB 不会上传你的应用源码——只传输 APK 与设备状态。SDK Platform Tools 采用 Apache 2.0 协议,可作为独立 ZIP 或通过 SDK Manager 获取。
速查页版本 1.0.0