Android ADB指令大全详解

什么是 ADB?

ADBAndroid Debug Bridge 的缩写,它是一个命令行工具,充当了电脑和 Android 设备(或模拟器)之间的桥梁,允许你与设备进行通信。

一、基础连接与设备管理

这些命令是使用 ADB 的基础。

命令 描述
adb devices 列出所有已连接的设备/模拟器。 这是最常用的命令,用于检查连接状态。
adb devices -l 列出设备的详细信息(包括设备型号)。
adb connect <ip:port> 通过网络连接设备(需要设备开启网络调试)。例如:adb connect 192.168.1.100:5555
adb disconnect <ip:port> 断开网络连接。
adb kill-server 终止 ADB 服务。
adb start-server 启动 ADB 服务。通常不需要手动执行,adb devices 会自动触发。
adb wait-for-device 阻塞命令,直到设备变为在线状态。在脚本中很有用。
adb -s <device_serial> <command> 指定设备执行命令。 当连接了多个设备时使用。例如:adb -s emulator-5554 install app.apk
adb -d <command> 指定唯一的物理设备执行命令(如果同时有设备和模拟器)。
adb -e <command> 指定唯一的模拟器执行命令。

二、应用管理

安装、卸载和管理应用程序。

命令 描述
adb install <path_to_apk> 安装应用。
adb install -r <path_to_apk> 覆盖安装,保留数据。
adb install -s 将应用安装到 SD 卡(如果支持)。
adb install -d 允许版本降级安装。
adb uninstall <package_name> 卸载应用。例如:adb uninstall com.example.app
adb uninstall -k <package_name> 卸载应用但保留数据和缓存
adb shell pm list packages 列出设备上所有应用的包名。
adb shell pm list packages -3 只列出第三方应用。
adb shell pm list packages -s 只列出系统应用。
adb shell pm list packages -f 列出包名及其对应的 APK 路径。
adb shell pm path <package_name> 列出指定 APK 的安装路径。
adb shell pm clear <package_name> 清除指定应用的数据和缓存。
adb shell am force-stop <package_name> 强制停止一个应用。

三、文件操作

在电脑和设备之间传输文件。

命令 描述
adb push <local> <remote> 将电脑文件/文件夹复制到设备。 例如:adb push ./photo.jpg /sdcard/
adb pull <remote> <local> 将设备文件/文件夹复制到电脑。 例如:adb pull /sdcard/photo.jpg ./
adb shell ls <path> 列出设备上的文件和目录。
adb shell cd <path> 切换设备上的目录。
adb shell rm <file_path> 删除设备上的文件。
adb shell rm -r <dir_path> 递归删除设备上的目录。
adb shell mkdir <path> 在设备上创建目录。

四、日志与系统信息

查看日志、系统属性和状态。

命令 描述
adb logcat 打印系统日志。 会持续输出。
adb logcat -c 清除日志缓冲区。
adb logcat -v time 打印带时间的日志。
adb logcat -s <tag> 过滤指定 TAG 的日志。例如:adb logcat -s MyApp
adb logcat -b main 查看主日志缓冲区(默认)。
adb logcat -b radio 查看射频、电话相关的日志。
adb logcat -b events 查看系统事件日志。
adb logcat > log.txt 将日志输出到电脑的 log.txt 文件。
adb bugreport 生成一个非常详细的 Bug 报告,包含日志、堆栈跟踪、系统状态等。
adb shell dumpsys 打印所有系统服务信息。 信息量巨大。
adb shell dumpsys <service> 打印特定服务的信息。常用服务见下表。
adb shell getprop 获取所有系统属性。
adb shell getprop <key> 获取特定系统属性。例如:adb shell getprop ro.build.version.sdk
adb shell wm size 显示屏幕物理分辨率。
adb shell wm density 显示屏幕密度。

常用 dumpsys 服务:

服务名 描述
adb shell dumpsys activity 活动(Activity)和任务栈信息。
adb shell dumpsys window 窗口信息,包含 mSurface 等。
adb shell dumpsys cpuinfo CPU 使用信息。
adb shell dumpsys meminfo <package_name> 查看指定应用的内存使用情况。
adb shell dumpsys battery 电池状态信息。
adb shell dumpsys power 电源管理信息。
adb shell dumpsys notification 通知信息。
adb shell dumpsys package <package_name> 指定包的详细信息。

五、脚本与输入模拟

自动化操作和模拟用户输入。

命令 描述
adb shell input keyevent <keycode> 模拟按键事件。 常用键码见下表。
adb shell input text "<string>" 模拟输入文本。 注意:不支持中文。
adb shell input tap <x> <y> 模拟触摸点击。
adb shell input swipe <x1> <y1> <x2> <y2> 模拟滑动。
adb shell input swipe <x1> <y1> <x2> <y2> <ms> 模拟滑动,并指定持续时间(毫秒)。
adb shell screencap -p <path> 截屏并保存到设备。 例如:adb shell screencap -p /sdcard/screen.png
adb exec-out screencap -p > screen.png 截屏并直接保存到电脑。
adb shell screenrecord <path> 录屏(Android 4.4+), 保存到设备。按 Ctrl+C 停止。
adb shell uiautomator dump 获取当前界面的 UI 布局(XML 格式)。

常用 Keycode(键码):

android adb 指令大全

好的,这是一份非常全面的 Android ADB 指令大全,涵盖了从基础到高级的常用命令。ADB 是 Android 调试的瑞士军刀,掌握它能极大地提升开发和测试效率。

什么是 ADB?

ADBAndroid Debug Bridge 的缩写,它是一个命令行工具,充当了电脑和 Android 设备(或模拟器)之间的桥梁,允许你与设备进行通信。


一、基础连接与设备管理

这些命令是使用 ADB 的基础。

命令 描述
adb devices 列出所有已连接的设备/模拟器。 这是最常用的命令,用于检查连接状态。
adb devices -l 列出设备的详细信息(包括设备型号)。
adb connect <ip:port> 通过网络连接设备(需要设备开启网络调试)。例如:adb connect 192.168.1.100:5555
adb disconnect <ip:port> 断开网络连接。
adb kill-server 终止 ADB 服务。
adb start-server 启动 ADB 服务。通常不需要手动执行,adb devices 会自动触发。
adb wait-for-device 阻塞命令,直到设备变为在线状态。在脚本中很有用。
adb -s <device_serial> <command> 指定设备执行命令。 当连接了多个设备时使用。例如:adb -s emulator-5554 install app.apk
adb -d <command> 指定唯一的物理设备执行命令(如果同时有设备和模拟器)。
adb -e <command> 指定唯一的模拟器执行命令。

二、应用管理

安装、卸载和管理应用程序。

命令 描述
adb install <path_to_apk> 安装应用。
adb install -r <path_to_apk> 覆盖安装,保留数据。
adb install -s 将应用安装到 SD 卡(如果支持)。
adb install -d 允许版本降级安装。
adb uninstall <package_name> 卸载应用。例如:adb uninstall com.example.app
adb uninstall -k <package_name> 卸载应用但保留数据和缓存
adb shell pm list packages 列出设备上所有应用的包名。
adb shell pm list packages -3 只列出第三方应用。
adb shell pm list packages -s 只列出系统应用。
adb shell pm list packages -f 列出包名及其对应的 APK 路径。
adb shell pm path <package_name> 列出指定 APK 的安装路径。
adb shell pm clear <package_name> 清除指定应用的数据和缓存。
adb shell am force-stop <package_name> 强制停止一个应用。

三、文件操作

在电脑和设备之间传输文件。

命令 描述
adb push <local> <remote> 将电脑文件/文件夹复制到设备。 例如:adb push ./photo.jpg /sdcard/
adb pull <remote> <local> 将设备文件/文件夹复制到电脑。 例如:adb pull /sdcard/photo.jpg ./
adb shell ls <path> 列出设备上的文件和目录。
adb shell cd <path> 切换设备上的目录。
adb shell rm <file_path> 删除设备上的文件。
adb shell rm -r <dir_path> 递归删除设备上的目录。
adb shell mkdir <path> 在设备上创建目录。

四、日志与系统信息

查看日志、系统属性和状态。

命令 描述
adb logcat 打印系统日志。 会持续输出。
adb logcat -c 清除日志缓冲区。
adb logcat -v time 打印带时间的日志。
adb logcat -s <tag> 过滤指定 TAG 的日志。例如:adb logcat -s MyApp
adb logcat -b main 查看主日志缓冲区(默认)。
adb logcat -b radio 查看射频、电话相关的日志。
adb logcat -b events 查看系统事件日志。
adb logcat > log.txt 将日志输出到电脑的 log.txt 文件。
adb bugreport 生成一个非常详细的 Bug 报告,包含日志、堆栈跟踪、系统状态等。
adb shell dumpsys 打印所有系统服务信息。 信息量巨大。
adb shell dumpsys <service> 打印特定服务的信息。常用服务见下表。
adb shell getprop 获取所有系统属性。
adb shell getprop <key> 获取特定系统属性。例如:adb shell getprop ro.build.version.sdk
adb shell wm size 显示屏幕物理分辨率。
adb shell wm density 显示屏幕密度。

常用 dumpsys 服务:

服务名 描述
adb shell dumpsys activity 活动(Activity)和任务栈信息。
adb shell dumpsys window 窗口信息,包含 mSurface 等。
adb shell dumpsys cpuinfo CPU 使用信息。
adb shell dumpsys meminfo <package_name> 查看指定应用的内存使用情况。
adb shell dumpsys battery 电池状态信息。
adb shell dumpsys power 电源管理信息。
adb shell dumpsys notification 通知信息。
adb shell dumpsys package <package_name> 指定包的详细信息。

五、脚本与输入模拟

自动化操作和模拟用户输入。

命令 描述
adb shell input keyevent <keycode> 模拟按键事件。 常用键码见下表。
adb shell input text "<string>" 模拟输入文本。 注意:不支持中文。
adb shell input tap <x> <y> 模拟触摸点击。
adb shell input swipe <x1> <y1> <x2> <y2> 模拟滑动。
adb shell input swipe <x1> <y1> <x2> <y2> <ms> 模拟滑动,并指定持续时间(毫秒)。
adb shell screencap -p <path> 截屏并保存到设备。 例如:adb shell screencap -p /sdcard/screen.png
adb exec-out screencap -p > screen.png 截屏并直接保存到电脑。
adb shell screenrecord <path> 录屏(Android 4.4+), 保存到设备。按 Ctrl+C 停止。
adb shell uiautomator dump 获取当前界面的 UI 布局(XML 格式)。

常用 Keycode(键码):

键码 含义
3 HOME 键
4 BACK 键
5 拨号
6 挂断
24 音量+
25 音量-
26 电源键
27 相机
66 回车键
82 菜单键
187 应用切换(最近任务)
220 降低屏幕亮度
221 提高屏幕亮度

六、网络与端口转发

命令 描述
adb shell netstat 显示网络连接状态。
adb shell ping <host> Ping 一个主机。
adb shell ifconfig 查看网络接口配置(可能需要 root)。
adb shell netcfg 查看网络状态。
adb forward tcp:<local_port> tcp:<device_port> 将本地端口转发到设备端口。
adb forward tcp:<local_port> jwdp:<pid> 转发用于 Chrome 远程调试。
adb reverse tcp:<device_port> tcp:<local_port> 将设备端口反向代理到本地端口。 (Android 5.0+)

七、高级与调试命令

命令 描述
adb shell 进入设备的 Linux Shell 环境。
adb shell am start -n <package>/<activity> 启动一个 Activity。 例如:adb shell am start -n com.android.settings/.Settings
adb shell am start -a <action> 通过 Intent Action 启动。例如:adb shell am start -a android.intent.action.VIEW -d "http://www.google.com"
adb reboot 重启设备。
adb reboot bootloader 重启到 Bootloader 模式(Fastboot 模式)。
adb reboot recovery 重启到 Recovery 模式。
adb root 以 root 权限重启 ADB 守护进程。 (需要已 root 的系统或工程机)
adb unroot 退出 root 模式。
adb remount 重新挂载 /system 分区为可写(需要 root)。
adb sideload <ota_package.zip> 在 Recovery 模式下刷入 OTA 更新包。
adb backup -all -apk -shared -f backup.ab 备份系统数据(已不推荐使用)。
adb restore backup.ab 从备份文件恢复数据。

实用技巧与组合命令

  1. 过滤日志

    复制代码
    # 查找包含 "Exception" 的日志
    adb logcat | grep "Exception"
    
    # 在 Windows 上使用 findstr
    adb logcat | findstr "Exception"
  2. 一键安装并启动应用

    复制代码
    adb install app.apk && adb shell am start -n com.example.app/.MainActivity
  3. 清除数据并启动应用(用于测试)

    复制代码
    adb shell pm clear com.example.app && adb shell am start -n com.example.app/.MainActivity
  4. 快速截屏并传到电脑

    复制代码
    adb exec-out screencap -p > screenshot_$(date +%Y%m%d_%H%M%S).png
  5. 查看当前前台 Activity

    复制代码
    adb shell dumpsys activity activities | grep "mResumedActivity"
相关推荐
有位神秘人16 小时前
Android中Notification的使用详解
android·java·javascript
·云扬·16 小时前
MySQL Binlog落盘机制深度解析:性能与安全性的平衡艺术
android·mysql·adb
天马379816 小时前
MySql9 免安装版_配置和启动_MySql9安装
adb·mysql9 免安装版·mysql9安装
独自破碎E17 小时前
【BISHI9】田忌赛马
android·java·开发语言
·云扬·18 小时前
MySQL Binlog 配置指南与核心作用解析
数据库·mysql·adb
代码s贝多芬的音符18 小时前
android 两个人脸对比 mlkit
android
darkb1rd20 小时前
五、PHP类型转换与类型安全
android·安全·php
gjxDaniel21 小时前
Kotlin编程语言入门与常见问题
android·开发语言·kotlin
csj5021 小时前
安卓基础之《(22)—高级控件(4)碎片Fragment》
android
峥嵘life21 小时前
Android16 【CTS】CtsMediaCodecTestCases等一些列Media测试存在Failed项
android·linux·学习