全部速查表Android开发

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 -l
adb 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:5555
adb disconnect [<ip>:<port>]

断开一台或所有无线设备。不传参数则断开所有连接。

adb disconnect 192.168.1.42:5555 && adb disconnect
adb -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.apk
adb install-multi-package <apk1> <apk2>

原子地安装一个 split APK 包——用于包含多 ABI / 多 config 的 App Bundle。

adb install-multi-package base.apk split_config.arm64.apk
adb uninstall <package>

按包名卸载一个应用。`-k` 保留数据 + 缓存目录。

-k 保留用户数据

adb uninstall com.example.myapp

Logcat

adb logcat

流式输出设备的日志缓冲区。tag / 优先级过滤:`*:V`(verbose)、`*:E`(errors)。

-v threadtime;-d dump 后退出;-s <tag>;-t <N>;--pid=<pid>;-f <file> 写入文件

adb logcat *:E
adb 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:V

Shell

adb shell

进入设备上的交互式 shell。大多数 Unix 工具可用;`/sdcard` 是公共存储根目录。

-t 分配一个 TTY(用于交互式程序)

adb shell
adb shell <command>

在设备上运行单条命令并返回输出。混合主机 / 设备参数时注意正确引号。

adb shell pm list packages | grep com.example && adb shell dumpsys battery
adb shell pm list packages

列出已安装的包。`-f` 显示路径,`-3` 只显示用户安装的 app,`-d` 只显示已禁用的包。

-f 路径;-3 用户 app;-d 禁用;-e 启用;-s 系统;<filter>

adb shell pm list packages -3 | head -30
adb 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/.MainActivity
adb 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/assets
adb 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_remote
adb reverse tcp:<device-port> tcp:<host-port>

把设备端口反向转发到主机端口——当 dev server 在 `localhost:3000` 而设备需要访问时很有用。

adb reverse tcp:3000 tcp:3000 && curl http://localhost:3000/api/health
adb forward --list

列出当前生效的端口转发与反向转发。配合 `adb forward --remove-all` 可重置。

adb forward --list && adb reverse --list

应用管理

adb shell pm clear <package>

清空指定包的应用数据 + 缓存——等同于「设置 → 应用 → 存储 → 清除数据」。

adb shell pm clear com.example.myapp
adb shell pm grant <package> <permission>

无需 UI 弹框直接授予运行时权限(如 `android.permission.CAMERA`)——测试场景常见操作。

adb shell pm grant com.example.myapp android.permission.READ_CONTACTS
adb 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 flashall
adb 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 databases
adb 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-server
adb kill-server

停止 adb server 并断开所有设备。当 adb 卡在 `offline` 状态时很有用。

adb kill-server && adb start-server && adb devices

杂项

adb --version

打印 Platform Tools 版本。

adb --version
adb help

列出每个 adb 子命令及其一行说明。

adb help

无线调试

adb pair <ip>:<port>

通过 Wi-Fi 与设备配对,使用开发者选项中显示的 6 位配对码。配对完成后用 `adb connect` 连接到实际调试端口。

<ip>:<port>

adb pair 192.168.1.42:41235

相关命令速查

关于 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