环境准备:如何让 adb 命令可用?
在使用 adb 之前,你必须确保你的电脑已经安装了 Android SDK,adb 的路径被添加到了系统的环境变量中,这样你就可以在任何目录下直接输入 adb 命令。

- 安装 Android SDK:通常通过 Android Studio 的 SDK Manager 进行安装。
- 找到
adb路径:adb.exe文件位于Android SDK的platform-tools目录下,路径类似这样:- Windows:
C:\Users\你的用户名\AppData\Local\Android\Sdk\platform-tools\ - macOS:
/Users/你的用户名/Library/Android/sdk/platform-tools/ - Linux:
/home/你的用户名/Android/Sdk/platform-tools/
- Windows:
- 添加到环境变量:
- Windows: 将上述路径添加到系统的 "Path" 环境变量中。
- macOS / Linux: 将上述路径添加到
~/.bashrc,~/.zshrc或~/.profile文件中,然后运行source ~/.bashrc(或对应的 shell 文件) 使其生效。
验证安装:在终端或命令提示符中输入 adb version,如果能看到版本信息,说明配置成功。
核心概念:adb 的三大组件
adb 工作在客户端-服务器模型上,包含三个部分:
- 客户端:在你的电脑上运行,当你输入
adb命令时,就是客户端在监听。 - 守护进程:在 Android 设备上运行,作为客户端和
adb服务器的中介。 - 服务器:也在你的电脑上运行,管理客户端和设备之间的通信。
adb 启动时,会先启动一个服务器,它会尝试连接到所有已连接的设备上的守护进程。
adb 命令详解
设备连接与管理
这些命令用于查看和管理已连接的设备。

| 命令 | 描述 | 示例 |
|---|---|---|
adb devices |
(最常用) 列出所有连接的设备及其状态。 | adb devices |
adb -s <设备ID> <command> |
指定对某个设备执行命令(当多设备连接时必备)。 | adb -s emulator-5555 install my_app.apk |
adb get-serialno |
获取当前连接设备的序列号。 | adb get-serialno |
adb disconnect |
断开与当前设备的连接。 | adb disconnect |
adb connect <IP>:<端口> |
通过 IP 地址和端口连接到一个设备(如模拟器或通过 Wi-Fi 连接的真机)。 | adb connect 192.168.1.100:5555 |
设备状态说明:
device: 设备已正常连接,可以接受命令。unauthorized: 设备已连接,但未授权电脑调试,请确保在设备的“开发者选项”中点击了“允许 USB 调试”。offline: 设备未响应,可以尝试拔插 USB 线或重启adb服务。
应用安装与卸载
这些命令用于管理设备上的应用程序。
| 命令 | 描述 | 示例 |
|---|---|---|
adb install <path_to_apk> |
安装 APK 文件到设备。 | adb install C:\Users\...\app-release.apk |
adb install-multiple <path1> <path2> |
安装一个包含 split APKs 的应用(如为不同 ABI 或屏幕密度准备的 APK)。 | adb install-multiple base.apk x86_64.apk |
adb install -r <path_to_apk> |
(常用) 重新安装 APK,保留应用数据和缓存。 | adb install -r app-release.apk |
adb install -d <path_to_apk> |
允许安装版本代码较低的应用(降级安装)。 | adb install -d old_app.apk |
adb install -t <path_to_apk> |
允许安装测试 APK(需要 android:debuggable="true")。 |
adb install -t test_app.apk |
adb uninstall <package_name> |
卸载应用。注意:这会删除应用的所有数据。 | adb uninstall com.example.myapp |
adb uninstall -k <package_name> |
卸载应用,但保留应用数据和缓存目录。 | adb uninstall -k com.example.myapp |
日志查看
logcat 是调试应用时最重要的工具之一。
| 命令 | 描述 | 示例 |
|---|---|---|
adb logcat |
(最常用) 实时打印设备的所有日志。 | adb logcat |
adb logcat -c |
(常用) 清除设备上的日志缓冲区,通常在查看新日志前使用。 | adb logcat -c |
adb logcat -s <Tag> |
过滤日志,只显示指定标签(Tag)的日志。 | adb logcat -s ActivityManager |
adb logcat | grep "关键字" |
使用 grep 过滤日志,只包含特定关键字的行。 |
adb logcat \| grep "my_app" |
adb logcat -v time |
指定日志的显示格式,如时间戳。 | adb logcat -v time |
adb logcat -f <file_path> |
将日志输出到指定文件,而不是屏幕。 | adb logcat -f C:\logs\device_log.txt |
高级过滤:
adb logcat <优先级>:<Tag> *:<优先级>

- 优先级:
V(Verbose),D(Debug),I(Info),W(Warning),E(Error),F(Fatal),S(Silent) - 示例: 只显示 Error 级别及以上,并且标签为
MyApp的日志。adb logcat E:MyApp *:S
文件系统操作
在电脑和设备之间传输文件。
| 命令 | 描述 | 示例 |
|---|---|---|
adb pull <remote> <local> |
从设备下载文件到电脑。 | adb pull /sdcard/DCIM/Camera/ ./photos/ |
adb push <local> <remote> |
从电脑上传文件到设备。 | adb push my_local_file.txt /sdcard/ |
adb shell |
(核心命令) 进入设备的 Linux Shell 环境。 | adb shell |
进入 adb shell 后,你可以在设备上执行标准的 Linux 命令:
ls: 列出目录内容。cd: 切换目录。mkdir: 创建目录。rm: 删除文件。cat: 查看文件内容。chmod: 修改文件权限。
Shell 命令与活动管理
在 adb shell 内部或直接通过 adb shell 执行的命令。
| 命令 | 描述 | 示例 |
|---|---|---|
adb shell am start -n <包名>/<活动名> |
(常用) 启动一个指定的 Activity。 | adb shell am start -n com.example.myapp/.MainActivity |
adb shell am force-stop <包名> |
(常用) 强制停止一个正在运行的应用。 | adb shell am force-stop com.example.myapp |
adb shell pm list packages |
列出设备上已安装的所有应用包名。 | adb shell pm list packages |
adb shell pm list packages -f |
列出应用及其对应的 APK 文件路径。 | adb shell pm list packages -f |
adb shell pm path <包名> |
获取指定应用的 APK 文件在设备上的完整路径。 | adb shell pm path com.example.myapp |
adb shell input text "你的文本" |
在设备上输入指定的文本。 | adb shell input text "Hello World" |
adb shell input tap <x> <y> |
在屏幕指定的坐标处点击。 | adb shell input tap 500 1200 |
adb shell input swipe <x1> <y1> <x2> <y2> <duration> |
在屏幕上滑动。 | adb shell input swipe 100 1000 100 500 300 |
adb shell screencap -p <path> |
截取屏幕并保存为图片到设备。 | adb shell screencap -p /sdcard/screenshot.png |
adb shell screenrecord <path> |
录制屏幕,按 Ctrl+C 停止。 |
adb shell screenrecord /sdcard/record.mp4 |
模拟器/设备控制
| 命令 | 描述 | 示例 |
|---|---|---|
adb reboot |
重启设备。 | adb reboot |
adb reboot bootloader |
重启设备到 Bootloader 模式(通常用于刷机)。 | adb reboot bootloader |
adb reboot recovery |
重启设备到 Recovery 模式。 | adb reboot recovery |
adb emu <command> |
向模拟器发送特定命令。 | adb emu geo fix <经度> <纬度> (模拟位置) |
adb shell settings put global airplane_mode_on 1 |
开启飞行模式。 | |
adb shell settings put global airplane_mode_on 0 |
关闭飞行模式。 |
常用场景示例
场景1:安装并启动一个应用
# 1. 安装应用(保留数据) adb install -r my_app.apk # 2. 启动应用的主界面 adb shell am start -n com.mycompany.myapp/.MainActivity
场景2:查看应用的日志
# 1. 清除旧日志 adb logcat -c # 2. 运行你的应用(比如点击某个按钮) # 3. 过滤并查看你的应用日志 adb logcat | grep "MyApp"
场景3:从设备下载一张截图
# 1. 截图并保存到设备 adb shell screencap -p /sdcard/screenshot.png # 2. 将图片从设备下载到电脑当前目录 adb pull /sdcard/screenshot.png .
场景4:通过 Wi-Fi 连接设备(减少 USB 依赖)
- 设备端:
- 用 USB 线连接电脑和设备。
- 在终端运行:
adb tcpip 5555(端口号可以自定义,常用 5555)。
- 电脑端:
- 拔掉 USB 线。
- 查看设备的 IP 地址(设置 -> 关于手机 -> 状态)。
- 运行:
adb connect <设备IP>:5555(adb connect 192.168.1.100:5555)。
- 验证:
adb devices应该能看到设备处于device状态。
希望这份详细的指南能帮助你熟练掌握 adb 命令!它是安卓开发和调试的瑞士军刀。
