# 设备端启用网络 ADB
su
setprop service.adb.tcp.port 5555
stop adbd
start adbd
ip addr show
# PC 端连接
adb connect 192.168.141.241:5555
192.168.110.240
192.168.140.29
#root权限连接
adb root
# 注意: 连接前确保网络可达
ping <device_ip>
ADB 常用命令大全(Markdown 速查)
说明:以下命令默认已将
adb加入环境变量;如有多台设备,请优先使用-s <serial>指定设备(见“多设备/选择目标设备”)。
0. 基础与排错
adb version # 查看 adb 版本
adb help # 查看帮助
adb start-server # 启动 adb server
adb kill-server # 关闭 adb server
adb nodaemon server # 前台启动 server(便于看日志)
adb wait-for-device # 阻塞直到设备连接可用
adb reconnect # 重新连接设备(USB/TCP)
adb reconnect device # 重新连接设备端
adb reconnect offline # 尝试重连离线设备
常见排错:
adb devices -l # 查看设备列表(带更多信息)
adb usb # 切回 USB 模式
adb tcpip 5555 # 切到 TCP 模式(需 USB 已连接一次)
adb connect <ip>:5555 # 通过网络连接
adb disconnect <ip>:5555 # 断开指定网络设备
adb disconnect # 断开全部网络设备
1. 多设备/选择目标设备
adb devices # 列出已连接设备
adb devices -l # 更详细信息
adb -s <serial> shell # 对指定设备执行命令
adb -d shell # 仅对 USB 设备(单一)执行
adb -e shell # 仅对模拟器执行
adb -t <transport_id> shell # Android 11+ 可用:按 transport_id 选择
获取序列号:
adb get-serialno
adb -s <serial> get-serialno
2. 设备信息
adb shell getprop # 查看全部系统属性
adb shell getprop ro.product.model # 机型
adb shell getprop ro.build.version.release # Android 版本
adb shell getprop ro.build.version.sdk # SDK 版本
adb shell settings get system screen_brightness # 读取系统设置(示例)
adb shell wm size # 屏幕分辨率
adb shell wm density # 屏幕 DPI
adb shell df -h # 存储情况
adb shell uptime # 运行时长
3. 安装/卸载/应用管理(pm)
安装:
adb install app.apk # 安装
adb install -r app.apk # 覆盖安装(保留数据)
adb install -d app.apk # 允许版本降级
adb install -g app.apk # 安装时授予所有运行时权限
adb install-multiple base.apk split_*.apk # 安装 split APK
adb install --user 0 app.apk # 为 user 0 安装(部分 ROM/场景)
卸载:
adb uninstall <package> # 卸载(删除数据)
adb uninstall -k <package> # 卸载但保留数据与缓存(若支持)
列出/查询:
adb shell pm list packages # 列出所有包名
adb shell pm list packages -3 # 仅第三方应用
adb shell pm list packages -s # 仅系统应用
adb shell pm list packages <keyword> # 按关键字过滤
adb shell pm path <package> # 查看 APK 路径
adb shell pm dump <package> # 输出包信息(较多)
adb shell cmd package resolve-activity --brief <intent> # 解析 Activity(新命令体系)
清理数据/授权:
adb shell pm clear <package> # 清除应用数据
adb shell pm grant <package> <permission> # 授予权限
adb shell pm revoke <package> <permission> # 撤销权限
启用/停用:
adb shell pm disable-user --user 0 <package> # 对 user 0 停用
adb shell pm enable <package> # 启用
adb shell pm uninstall --user 0 <package> # 仅对 user 0 卸载(系统应用常用)
4. 启动/停止应用与 Activity(am)
启动应用主界面:
adb shell monkey -p <package> -c android.intent.category.LAUNCHER 1
启动 Activity:
adb shell am start -n <package>/<activity> # 指定组件启动
adb shell am start -a android.intent.action.VIEW -d "https://example.com"
启动 Service / 发送广播:
adb shell am startservice -n <package>/<service>
adb shell am broadcast -a <action> --es key value
强制停止/查看当前前台:
adb shell am force-stop <package> # 强制停止
adb shell dumpsys activity activities | head # 查看 Activity 栈(输出很多)
adb shell dumpsys window | grep mCurrentFocus # 当前焦点窗口(部分系统可用)
5. 进入 Shell 与常用 Linux/Android 命令
adb shell # 进入交互式 shell
adb shell <cmd> # 直接执行单条命令
adb shell "cd /sdcard && ls" # 执行复合命令
常见:
adb shell ls /sdcard
adb shell pwd
adb shell cat /proc/cpuinfo
adb shell ps -A # 进程列表(不同版本参数略有差异)
adb shell top -n 1
adb shell id # 当前用户信息
adb shell su # root(仅已 root/工程机)
6. 文件传输(push/pull)与目录管理
adb push <local> <remote> # 推送到设备
adb pull <remote> <local> # 从设备拉取
adb pull <remote> # 拉取到当前目录
adb shell mkdir -p /sdcard/test
adb shell rm -rf /sdcard/test
提示:Android 10+ 分区存储影响 /sdcard/Android/data 等目录访问,可能需要 run-as、root 或通过应用自身导出。
7. 截图/录屏
截图:
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png .
adb shell rm /sdcard/screen.png
直接输出到本机文件(避免占用手机存储):
adb exec-out screencap -p > screen.png //这样输出的文件似乎会损坏
录屏:
adb shell screenrecord /sdcard/demo.mp4
adb pull /sdcard/demo.mp4 .
adb shell rm /sdcard/demo.mp4
常用参数:
adb shell screenrecord --time-limit 30 /sdcard/demo.mp4
adb shell screenrecord --size 1280x720 --bit-rate 6000000 /sdcard/demo.mp4
8. 日志(logcat)与抓取问题现场
logcat:
adb logcat # 实时日志
adb logcat -c # 清空缓冲区
adb logcat -d > logcat.txt # 导出当前日志并退出
adb logcat -v time # 带时间格式
adb logcat *:W # 仅 Warning 及以上
adb logcat <TAG>:V *:S # 仅某 TAG
adb logcat --pid=$(adb shell pidof <package>) # 仅某进程(新版本支持)
logcat -s Activity
抓取更完整的诊断:
adb bugreport > bugreport.zip # Android 7+ 通常输出 zip
adb shell dumpsys # 输出大量系统服务状态
adb shell dumpsys meminfo <package> # 内存信息
adb shell dumpsys cpuinfo # CPU 信息(老设备常用)
9. 模拟输入(input)
点击/滑动/文本:
adb shell input tap 500 1200
adb shell input swipe 200 1200 200 300 # 向上滑动
adb shell input swipe 200 300 200 1200 500 # 带时长(ms)
adb shell input text "hello_world" # 空格需转义或用 %s
adb shell input keyevent 3 # HOME
adb shell input keyevent 4 # BACK
adb shell input keyevent 26 # POWER
adb shell input keyevent 24 # VOLUME_UP
adb shell input keyevent 25 # VOLUME_DOWN
常用 KeyEvent(部分):
3 HOME, 4 BACK, 19/20/21/22 方向键, 23 DPAD_CENTER/ENTER,
66 ENTER, 67 DEL, 82 MENU, 187 APP_SWITCH
10. 端口转发/反向转发(调试必备)
adb forward tcp:6100 tcp:7100 # 本机 6100 -> 设备 7100
adb reverse tcp:8081 tcp:8081 # 设备 8081 -> 本机 8081(React Native 常用)
adb forward --list # 查看转发列表
adb forward --remove tcp:6100
adb forward --remove-all
adb reverse --list
adb reverse --remove tcp:8081
adb reverse --remove-all
11. 重启与模式切换
adb reboot # 重启系统
adb reboot recovery # 重启到 recovery
adb reboot bootloader # 重启到 bootloader/fastboot
adb reboot sideload # 重启到 sideload(部分机型/Recovery 支持)
adb reboot-bootloader # 等价写法(部分环境)
12. Root / 分区挂载(需要设备支持)
仅工程机/userdebug/已 root 设备可用,商用机通常不可用。
adb root # 以 root 重启 adbd
adb unroot # 取消 root
adb remount # 重新挂载系统分区为可写(需要 root)
adb disable-verity # 禁用 verity(危险,谨慎)
adb enable-verity # 启用 verity
13. run-as(调试应用私有目录)
仅对 debuggable 应用有效(通常 debug 包可用)。
adb shell run-as <package> ls
adb shell run-as <package> cat files/config.json
adb shell run-as <package> cp files/a.db /sdcard/a.db
adb pull /sdcard/a.db .
14. AppOps / 权限与设置(进阶)
adb shell appops get <package>
adb shell appops set <package> <OP> allow|deny|ignore
adb shell settings list system
adb shell settings list secure
adb shell settings list global
adb shell settings get secure android_id
adb shell settings put global animator_duration_scale 0
adb shell settings put global transition_animation_scale 0
adb shell settings put global window_animation_scale 0
15. 复制/粘贴与剪贴板(部分版本/ROM 支持)
adb shell cmd clipboard get # Android 10+ 常见
adb shell cmd clipboard set "hello" # 可能因 ROM/权限限制不可用
16. 常见组合用法示例
查看并过滤应用日志:
adb shell pidof <package>
adb logcat --pid=<pid> -v time
从 URL 拉起浏览器:
adb shell am start -a android.intent.action.VIEW -d "https://www.android.com"
获取当前前台包名(不同版本可能不一致):
adb shell dumpsys window | grep -E "mCurrentFocus|mFocusedApp"
17. 备忘:常用参数与注意点
-s <serial>:多设备时指定目标设备(强烈建议养成习惯)adb exec-out ...:直接把设备输出流重定向到本机文件(截图/录屏/导出更方便)- Android 10+:分区存储导致部分目录不可读;优先用应用内导出、
run-as或调试接口 - 某些命令在不同 Android 版本/ROM 上存在差异(如
ps参数、剪贴板命令等)