ADB 常用命令手册

目录

简介

ADB (Android Debug Bridge) 是一个多功能的命令行工具,用于与Android设备进行通信。它是Android SDK的一部分,允许开发者在计算机和Android设备之间传输数据、安装应用、调试程序等。

基本语法

1
adb [global options] command [command options]

设备连接与管理

查看连接的设备

1
2
3
4
5
# 列出所有连接的设备
adb devices

# 列出设备详细信息
adb devices -l

连接设备

1
2
3
4
5
6
7
8
# 通过USB连接(自动检测)
adb usb

# 通过TCP/IP连接
adb connect <设备IP>:5555

# 断开TCP/IP连接
adb disconnect <设备IP>:5555

多设备操作

1
2
3
4
5
# 指定设备执行命令
adb -s <设备序列号> <命令>

# 示例:在指定设备上安装应用
adb -s emulator-5554 install app.apk

设备状态管理

1
2
3
4
5
6
7
8
9
10
11
# 重启设备
adb reboot

# 重启到recovery模式
adb reboot recovery

# 重启到bootloader模式
adb reboot bootloader

# 等待设备连接
adb wait-for-device

应用管理

安装应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装APK文件
adb install <apk文件路径>

# 强制安装(覆盖已存在的应用)
adb install -r <apk文件路径>

# 安装到SD卡
adb install -s <apk文件路径>

# 允许降级安装
adb install -d <apk文件路径>

# 安装时保留数据和缓存
adb install -r -d <apk文件路径>

卸载应用

1
2
3
4
5
6
7
8
# 卸载应用
adb uninstall <包名>

# 卸载应用但保留数据
adb uninstall -k <包名>

# 示例:卸载微信
adb uninstall com.tencent.mm

应用信息查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 列出所有已安装的包
adb shell pm list packages

# 列出系统应用
adb shell pm list packages -s

# 列出第三方应用
adb shell pm list packages -3

# 列出包含关键字的应用
adb shell pm list packages | grep <关键字>

# 查看应用详细信息
adb shell dumpsys package <包名>

# 查看应用安装路径
adb shell pm path <包名>

应用操作

1
2
3
4
5
6
7
8
9
10
11
# 启动应用
adb shell am start -n <包名>/<活动名>

# 启动应用主活动
adb shell monkey -p <包名> -c android.intent.category.LAUNCHER 1

# 强制停止应用
adb shell am force-stop <包名>

# 清除应用数据
adb shell pm clear <包名>

文件传输

推送文件到设备

1
2
3
4
5
6
7
8
# 推送文件到设备
adb push <本地文件路径> <设备路径>

# 示例:推送图片到设备
adb push /Users/username/photo.jpg /sdcard/Pictures/

# 推送整个文件夹
adb push <本地文件夹> <设备路径>

从设备拉取文件

1
2
3
4
5
6
7
8
# 从设备拉取文件
adb pull <设备文件路径> <本地路径>

# 示例:拉取设备截图
adb pull /sdcard/screenshot.png ./

# 拉取整个文件夹
adb pull <设备文件夹路径> <本地路径>

文件系统操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 进入设备shell
adb shell

# 在shell中的常用命令:
# 列出文件和目录
ls -la

# 查看文件内容
cat <文件路径>

# 创建目录
mkdir <目录名>

# 删除文件
rm <文件路径>

# 删除目录
rm -rf <目录路径>

# 移动/重命名文件
mv <源路径> <目标路径>

# 复制文件
cp <源路径> <目标路径>

系统操作

系统信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看设备信息
adb shell getprop

# 查看Android版本
adb shell getprop ro.build.version.release

# 查看设备型号
adb shell getprop ro.product.model

# 查看设备制造商
adb shell getprop ro.product.manufacturer

# 查看CPU架构
adb shell getprop ro.product.cpu.abi

# 查看内存信息
adb shell cat /proc/meminfo

# 查看存储空间
adb shell df -h

权限管理

1
2
3
4
5
6
7
8
9
10
11
# 授予应用权限
adb shell pm grant <包名> <权限名>

# 撤销应用权限
adb shell pm revoke <包名> <权限名>

# 查看应用权限
adb shell dumpsys package <包名> | grep permission

# 示例:授予相机权限
adb shell pm grant com.example.app android.permission.CAMERA

设置操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 打开设置页面
adb shell am start -a android.settings.SETTINGS

# 打开WiFi设置
adb shell am start -a android.settings.WIFI_SETTINGS

# 打开应用信息页面
adb shell am start -a android.settings.APPLICATION_DETAILS_SETTINGS -d package:<包名>

# 修改系统设置(需要root权限)
adb shell settings put system <设置名> <值>

# 查看系统设置
adb shell settings get system <设置名>

调试与日志

日志查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 查看实时日志
adb logcat

# 清除日志缓冲区
adb logcat -c

# 按标签过滤日志
adb logcat -s <标签名>

# 按级别过滤日志
adb logcat *:E # 只显示错误级别

# 保存日志到文件
adb logcat > log.txt

# 查看特定应用的日志
adb logcat | grep <包名>

# 格式化日志输出
adb logcat -v time # 显示时间戳
adb logcat -v threadtime # 显示详细时间和线程信息

性能分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看CPU使用情况
adb shell top

# 查看内存使用情况
adb shell dumpsys meminfo

# 查看特定应用内存使用
adb shell dumpsys meminfo <包名>

# 查看电池使用情况
adb shell dumpsys battery

# 查看网络统计
adb shell cat /proc/net/dev

网络与端口转发

端口转发

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 设置端口转发
adb forward tcp:<本地端口> tcp:<设备端口>

# 示例:转发8080端口
adb forward tcp:8080 tcp:8080

# 查看端口转发列表
adb forward --list

# 移除端口转发
adb forward --remove tcp:<本地端口>

# 移除所有端口转发
adb forward --remove-all

网络操作

1
2
3
4
5
6
7
8
9
10
11
# 查看网络接口
adb shell ifconfig

# 查看网络连接
adb shell netstat

# ping测试
adb shell ping <目标地址>

# 查看WiFi信息
adb shell dumpsys wifi

屏幕操作

截图和录屏

1
2
3
4
5
6
7
8
9
10
11
12
# 截图
adb shell screencap /sdcard/screenshot.png
adb pull /sdcard/screenshot.png

# 录制屏幕(Android 4.4+)
adb shell screenrecord /sdcard/demo.mp4

# 录制屏幕(限制时间)
adb shell screenrecord --time-limit 30 /sdcard/demo.mp4

# 录制屏幕(指定分辨率)
adb shell screenrecord --size 1280x720 /sdcard/demo.mp4

输入操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 发送文本输入
adb shell input text "Hello World"

# 模拟按键
adb shell input keyevent <键码>

# 常用键码:
# HOME键: 3
# BACK键: 4
# MENU键: 82
# 电源键: 26
# 音量加: 24
# 音量减: 25

# 模拟点击
adb shell input tap <x坐标> <y坐标>

# 模拟滑动
adb shell input swipe <x1> <y1> <x2> <y2> <持续时间ms>

# 示例:从屏幕中央向上滑动
adb shell input swipe 500 1000 500 500 1000

性能监控

系统监控

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 监控CPU使用率
adb shell top -n 1

# 监控内存使用
adb shell cat /proc/meminfo

# 监控磁盘I/O
adb shell iostat

# 监控网络流量
adb shell cat /proc/net/dev

# 查看进程列表
adb shell ps

# 查看特定进程信息
adb shell ps | grep <进程名>

应用性能

1
2
3
4
5
6
7
8
9
10
11
# 查看应用CPU使用率
adb shell top | grep <包名>

# 查看应用内存详情
adb shell dumpsys meminfo <包名>

# 查看应用网络使用情况
adb shell cat /proc/net/xt_qtaguid/stats | grep <UID>

# 监控应用启动时间
adb shell am start -W <包名>/<活动名>

高级功能

备份与恢复

1
2
3
4
5
6
7
8
# 备份应用数据(需要设备确认)
adb backup -apk -shared -nosystem -all

# 备份特定应用
adb backup -apk <包名>

# 恢复备份
adb restore <备份文件>

开发者选项

1
2
3
4
5
6
7
8
9
10
# 启用USB调试(需要在设备上手动操作)
# 设置 -> 关于手机 -> 连续点击版本号7次 -> 开发者选项 -> USB调试

# 查看开发者选项状态
adb shell settings get global development_settings_enabled

# 启用/禁用动画(需要root权限)
adb shell settings put global window_animation_scale 0
adb shell settings put global transition_animation_scale 0
adb shell settings put global animator_duration_scale 0

自动化脚本示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
# 自动安装应用并启动的脚本

APK_PATH="app.apk"
PACKAGE_NAME="com.example.app"
ACTIVITY_NAME="com.example.app.MainActivity"

echo "安装应用..."
adb install -r $APK_PATH

echo "启动应用..."
adb shell am start -n $PACKAGE_NAME/$ACTIVITY_NAME

echo "完成!"

常见问题解决

设备连接问题

1
2
3
4
5
6
7
8
9
# 重启ADB服务
adb kill-server
adb start-server

# 检查ADB版本
adb version

# 检查设备驱动(Windows)
# 设备管理器 -> 查看是否有未识别设备

权限问题

1
2
3
4
5
6
# 检查设备是否授权
adb devices
# 如果显示"unauthorized",需要在设备上确认授权

# 某些操作需要root权限
adb root # 重启ADB为root模式(需要root设备)

性能优化

1
2
3
4
# 关闭不必要的动画以提高操作速度
adb shell settings put global window_animation_scale 0.5
adb shell settings put global transition_animation_scale 0.5
adb shell settings put global animator_duration_scale 0.5

总结

这份ADB命令手册涵盖了日常开发和调试中最常用的命令。建议将常用命令制作成脚本或别名,以提高工作效率。记住在使用某些命令时可能需要设备root权限或用户确认。

快速参考

  • adb devices - 查看连接设备
  • adb install <apk> - 安装应用
  • adb shell - 进入设备shell
  • adb logcat - 查看日志
  • adb push/pull - 文件传输
  • adb shell screencap - 截图
  • adb shell input - 模拟输入

更多详细信息请参考 Android官方文档