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"
相关推荐
ashcn20013 小时前
opengl 播放视频的android c++ 方案
android·c++ opengl es
abner.Li3 小时前
android 反编译
android
Digitally3 小时前
如何删除 realme 手机上的短信
android
2501_916008893 小时前
提高 iOS 应用逆向难度的工程实践,多工具联动的全栈安全方案
android·安全·ios·小程序·uni-app·cocoa·iphone
沐怡旸4 小时前
【底层机制】Android图形渲染体系深度解析:VSync信号机制
android·面试
BoomHe4 小时前
Android 13 (API 33)上自定义广播
android
来来走走5 小时前
Android开发(Kotlin) ViewModel基本用法
android·开发语言·kotlin
Digitally6 小时前
在荣耀手机上删除短信的完整指南
android
nono牛6 小时前
Android Binder C/C++ 层详解与实践
android·c语言·binder