一、adb基础命令
命令 | 命令作用 | 命令具体操作 | 备注 |
adb version | 查看 adb 版本 |
![]() | |
adb help | 查看 adb 支持的所有命令 |
![]() | |
adb start-server | 启动 adb 服务 |
![]() | |
adb kill-server | 停止 adb 服务 |
![]() | |
adb devices | 查看当前连接的设备 |
![]() | |
adb connect | 用来连接设备 |
![]() | |
adb bugreport | 查看bug报告 |
二、adb权限命令
命令 | 命令作用 | 命令具体操作 | 备注 |
adb root | 获取 Android 管理员(root 用户)的权限 |
![]() | |
adb shell | 登录设备的 shell(内核),登录 shell 后可以使用 cd、ls、rm 等 Linux 命令 |
![]() | |
adb remount | 获取 System 分区可写权限,需要获取 Android 管理员(root 用户)的权限后才能获取这个权限 |
![]() | |
adb reboot | 重启手机 | ||
adb reboot recovery | 重启到Recovery界面,即恢复模式 | ||
adb remount | 重新挂载文件系统 | ||
adb shell top -n 1 | 刷新一次内存信息,然后返回 |
三、adb关于apk的 操作指令
命令 | 命令作用 | 命令具体操作 | 备注 |
adb shell pm list packages | 显示所有包名 |
![]() | |
adb shell pm list packages –s | 显示系统应用包名 |
![]() | |
adb shell pm list packages -3 | 显示第三方应用包名 |
![]() | |
adb install <apk 文件路径 > | 将本地 apk文件(软件)安装到设备上 |
![]() | |
adb uninstall <apk 包名 > | 卸载设备上的 apk文件(软件) |
![]() | |
adb install -r <apk 文件路径 >.apk | 重新安装该软件 | ||
adb shell rm/system/avi.apk | 删除system/avi.apk |
四、文件操作指令
命令 | 命令作用 | 命令具体操作 | 备注 |
adb push < 本地路径 > < 手机端路径 > | 将本地的文件(文件夹)复制到设备 |
![]() | |
adb pull < 手机端文件 > < 本地路径 > | 把设备(手机)的文件或文件夹复制到本地(如果需要保留时间戳,需要加上[-a]) |
![]() | |
adb shell ls [-al] | 列出目录下的文件和文件夹(可选参数-al可查看文件和文件夹的详细信息) | ||
adb shell cd | 进入文件夹 | ||
adb shell cat | 查看文件 | ||
adb shell rename path/oldfilename path/newfilename | 重命名文件 | ||
adb shell rm path/filename -r (可选参数用于删除文件夹及下面的所有文件 eg:adb shell rm -r) | 删除文件/文件夹 | ||
adb shell mv path/filename newpath/filename | 移动文件 | ||
adb shell cp file newpath/file1 | 拷贝文件 | ||
adb shell mkdir path/folder | 创建目录 | ||
adb shell chmod 777 filename | 设置文件最高读写权限 |
五、日志操作指令
命令 | 命令作用 | 命令具体操作 | 备注 |
adb logcat -v time > 日志保存路径 | 输出实时日志并保存在本地文件,通过 Ctrl+C 来停止。抓取日志的步骤:输入命令启动日志 -> 然后操作 App -> 复现 bug -> 停止抓取日志 -> 分析本地保存的文件 |
![]() | |
adb bugreport > 日志保存路径 | 输入指令后开始抓取 Log,不需要按 Ctrl+C 来停止,会自动化停止 Log 打印并将日志文件保存在本地。抓取日志的步骤:主要抓取执行命令时往前 10 分钟左右的日志信息,所以在出现 bug 后立即采用此方法才有效,问题出现时间太长不建议使用此方法 |
![]() | |
adb logcat -c | 清除log缓存 |
六、系统操作指令
命令 | 命令作用 | 命令具体操作 | 备注 |
adb shell getprop ro.product.model | 获取设备型号 |
![]() | |
adb shell getprop ro.build.version.release | 获取设备 Android 系统版本 |
![]() | |
adb get-serialno | 获取设备的序列号(设备号) |
![]() | |
adb shell wm size | 获取设备屏幕分辨率 |
![]() | |
adb shell screencap -p 截图在设备内的路径 | 设备屏幕截图 |
![]() | |
adb pull < 手机端文件 > < 本地路径 > | 将截图导出到本地 |
![]() | |
adb shell screenrecord--bugreport /sdcard/xxx.mp4 | 录制设备屏幕 | ||
adb shell uptime | 检测手机运行时间 | ||
adb logcat -v time-s tag > xxx.log | 查看手机上的运行日志,此项可以用来查错 | ||
adb shell amforce-stop <进程名> | 强制杀死进程 | ||
adb shell am start-n <进程名> / | 启动指定Activity | ||
adb shell svc wifienable | 打开wifi | ||
adb shell svc wifidisable | 关闭wifi | ||
adb shell cat/data/misc/wifi/*.conf | 查看wifi密码 | ||
adb get-serialno | 获取序列号 | ||
adb shell top | 查看设备cpu和内存占用情况 | ||
adb shell top -m 6 | 查看占用内存前6的app | ||
adb shell kill[pid] | 杀死一个进程 | ||
adb shell ps | 查看进程列表 | ||
adb shell ps -x[PID] | 查看指定进程状态 | ||
adb shell servicelist | 查看后台services信息 | 还有另一种查看方法 | |
adb shell procrank | 查询各进程内存使用情况 | ||
adb shell cat/proc/meminfo | 查看当前内存占用 | ||
adb shell cat/proc/iomem | 查看IO内存分区 | ||
adb shell cat/system/build.prop | 获取设备名称 | ||
adb nodaemon server | 查看哪个端口被占用 | ||
netstat -ano findstr "<端口号>" | 提示占用该端口的进程(非0地址) | ||
tasklist /fi “PIDeq <进程号>” | 通过pid查看所有进程 | ||
taskkill /pid <进程号> | 杀死进程 | ||
adb shell inputkeyevent <数值> | 模拟系统按键 | ||
adb shell dumpstate -代号 | 查看性能 |
输出当前servers信息(另一种查看当前servers信息方法)
命令 | 命令作用 | 命令具体操作 | 备注 |
adb shell dumpsys | 输出当前servers信息 |
输出信息的开始部分就是所有运行的service
查询到运行的system service后,就可以在dumpsys后面加上service的名字,查看指定的service信息。
adb shell dumpsys activity
adb shell dumpsys cpuinfo(CPU)
adb shell dumpsys batterystate(电池)
adb shell dumpsys window(分辨率)
数值对应的按键
数值 | 对应按键 | 备注 |
0 | KEYCODE_UNKNOWN | |
1 | KEYCODE_MENU | |
2 | KEYCODE_SOFT_RIGHT | |
3 | KEYCODE_HOME | |
4 | KEYCODE_BACK | 返回系统主页 |
5 | KEYCODE_CALL | |
6 | KEYCODE_ENDCALL | |
7 | KEYCODE_0 | |
8 | KEYCODE_1 | |
9 | KEYCODE_2 | |
10 | KEYCODE_3 | |
11 | KEYCODE_4 | |
12 | KEYCODE_5 | |
13 | KEYCODE_6 | |
14 | KEYCODE_7 | |
15 | KEYCODE_8 | |
16 | KEYCODE_9 | |
17 | KEYCODE_STAR | |
18 | KEYCODE_POUND | |
19 | KEYCODE_DPAD_UP | |
20 | KEYCODE_DPAD_DOWN | |
21 | KEYCODE_DPAD_LEFT | |
22 | KEYCODE_DPAD_RIGHT | |
23 | KEYCODE_DPAD_CENTER | |
24 | KEYCODE_VOLUME_UP | 增加音量 |
25 | KEYCODE_VOLUME_DOWN | |
26 | KEYCODE_POWER | |
27 | KEYCODE_CAMERA | |
28 | KEYCODE_CLEAR | |
29 | KEYCODE_A | |
30 | KEYCODE_B | |
31 | KEYCODE_C | |
32 | KEYCODE_D | |
33 | KEYCODE_E | |
34 | KEYCODE_F | |
35 | KEYCODE_G | |
36 | KEYCODE_H | |
37 | KEYCODE_I | |
38 | KEYCODE_J | |
39 | KEYCODE_K | |
40 | KEYCODE_L | |
41 | KEYCODE_M | |
42 | KEYCODE_N | |
43 | KEYCODE_O | |
44 | KEYCODE_P | |
45 | KEYCODE_Q | |
46 | KEYCODE_R | |
47 | KEYCODE_S | |
48 | KEYCODE_T | |
49 | KEYCODE_U | |
50 | KEYCODE_V | |
51 | KEYCODE_W | |
52 | KEYCODE_X | |
53 | KEYCODE_Y | |
54 | KEYCODE_Z | |
55 | KEYCODE_COMMA | |
56 | KEYCODE_PERIOD | |
57 | KEYCODE_ALT_LEFT | |
58 | KEYCODE_ALT_RIGHT | |
59 | KEYCODE_SHIFT_LEFT | |
60 | KEYCODE_SHIFT_RIGHT | |
61 | KEYCODE_TAB | |
62 | KEYCODE_SPACE | |
63 | KEYCODE_SYM | |
64 | KEYCODE_EXPLORER | |
65 | KEYCODE_ENVELOPE | |
66 | KEYCODE_ENTER | |
67 | KEYCODE_DEL | |
68 | KEYCODE_GRAVE | |
69 | KEYCODE_MINUS | |
70 | KEYCODE_EQUALS | |
71 | KEYCODE_LEFT_BRACKET | |
72 | KEYCODE_RIGHT_BRACKET | |
73 | KEYCODE_BACKSLASH | |
74 | KEYCODE_SEMICOLON | |
75 | KEYCODE_APOSTROPHE | |
76 | KEYCODE_SLASH | |
77 | KEYCODE_AT | |
78 | KEYCODE_NUM | |
79 | KEYCODE_HEADSETHOOK | |
80 | KEYCODE_FOCUS | |
81 | KEYCODE_PLUS | |
82 | KEYCODE_MENU | |
83 | KEYCODE_NOTIFICATION | |
84 | KEYCODE_SEARCH | |
85 | TAG_LAST_KEYCODE |
查看性能(命令后面的代号和对应信息)
代号 | 对应信息 | 备注 |
a | 设备基本信息 | |
b | 内存使用情况 | |
c | CPU使用情况 | |
d | /proc文件夹中保存的系统各种实时信息,特别是内存使用方面的详细信息,如用procrank命令获取的按内存使用率情况排序的进程列表 | |
e | 内核的一些信息 | |
f | 进程列表 | |
g | 各种进程中的线程列表以及各线程的堆栈信息 | |
h | 各进程打开的文件 | |
i | Logcat中的三个环状日志的内容,分别是系统主日志SYSTEM、事件日志EVENT和无线电日志RADIO | |
j | 网络相关的信息 | |
k | df命令输入的文件系统使用率信息 | |
m | 系统中安装的应用包信息 | |
n | dumpsys命令输出的信息 | |
o | 正在运行的应用列表 | |
p | 正在运行的服务列表 |
七、adb monkey常用命令参数
adb shell monkey -help
![](https://i-blog.csdnimg.cn/blog_migrate/e5225302b70f321c34a167dc8fb34171.png)
基本参数 | 说明 |
-p | 指定一个或多个包 |
-s | 指定一个随机数生成器的seed值 |
--throttle | 指定事件之间的固定延迟(ms) |
-v | 指定反馈信息级别(信息级别就是日志的详细程度) |
-c | 指定一个或多个类别名 |
-f | 运行指定的monkey脚本 |
事件参数 | 说明 |
--pct-touch | 指定触摸事件百分比 |
--pct-motion | 指定动作事件百分比 |
--pct-trackball | 指定轨迹事件百分比 |
--pct-syskeys | 指定系统按键事件百分比 |
--pct-nav | 指定基本导航事件百分比 |
--pct-majornav | 指定主要导航事件百分比 |
--pct-appswitch | 指定应用启动事件百分比 |
--pct-flip | 指定flip(弹)事件的百分比 |
--pct-anyevent | 指定其他类型事件百分比 |
--pct-pinchzoom | 指定缩放(捏)事件百分比 |
--pct-permission | 指定 |
调试参数 | 说明 |
--ignore-crashes | 忽略因崩溃或异常引起的停止运行 |
--ignore-timeouts | 忽略应用发生超时错误(ANR) |
--ignore-security-exceptions | 忽略应用发生任何权限错误 |
--monitor-native-crashes | 监视并报告monkey运行时native code的崩溃事件 |
--ignore-native-crashes | 忽略因native code的崩溃事件 |
--kill-process-after-error | 在应用出错后通知系统杀死发生错误的进程 |
--hprof | 在事件序列前后立即生成profilfing report |
--dbg-no-events | 监视应用程序所调用的包之间的转换 |
--wait-dbg | 暂停执行中的monkey,直到有调试器与它连接 |
停止Monkey的方法
Monkey启动后会不断地向被测对象发送随机事件流,直到事件执行完毕或者发生异常时才停止。在Monkey运行过程中,即便断开与PC的连接,Monkey依然可以在手机上继续运行。
停止Monkey的方法是:直接杀掉手机上的Monkey进程。具体方法如下:
adb shell ps |grep monkey
获取到com.android.commands.monkey的进程ID
adb shell kill pid
举例:adb shell kill 30898 通过kill命令杀死对应的Monkey进程。
另外还有一种方法:adb reboot(重启手机并杀死Monkey)