adb命令

213 阅读8分钟

一、adb基础命令

命令命令作用命令具体操作备注
adb version查看 adb 版本adb version
adb help查看 adb 支持的所有命令adb help
adb start-server启动 adb 服务adb start-server
adb kill-server停止 adb 服务adb kill-server
adb devices查看当前连接的设备adb devices
adb connect用来连接设备adb connect
adb bugreport查看bug报告

二、adb权限命令

命令命令作用命令具体操作备注
adb root获取 Android 管理员(root 用户)的权限adb root
adb shell登录设备的 shell(内核),登录 shell 后可以使用 cd、ls、rm 等 Linux 命令adb shell
adb remount获取 System 分区可写权限,需要获取 Android 管理员(root 用户)的权限后才能获取这个权限adb remount
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
adb shell pm list packages –s显示系统应用包名adb shell pm list packages –s
adb shell pm list packages -3显示第三方应用包名adb shell pm list packages -3
adb install <apk 文件路径 >将本地 apk文件(软件)安装到设备上adb install
adb uninstall <apk 包名 >卸载设备上的 apk文件(软件)adb uninstall
adb install -r <apk 文件路径 >.apk重新安装该软件
adb shell rm/system/avi.apk删除system/avi.apk

四、文件操作指令

命令命令作用命令具体操作备注
adb push < 本地路径 > < 手机端路径 >将本地的文件(文件夹)复制到设备adb push
adb pull < 手机端文件 > < 本地路径 >把设备(手机)的文件或文件夹复制到本地(如果需要保留时间戳,需要加上[-a])adb pull
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 logcat
adb bugreport > 日志保存路径输入指令后开始抓取 Log,不需要按 Ctrl+C 来停止,会自动化停止 Log 打印并将日志文件保存在本地。抓取日志的步骤:主要抓取执行命令时往前 10 分钟左右的日志信息,所以在出现 bug 后立即采用此方法才有效,问题出现时间太长不建议使用此方法adb bugreport
adb logcat -c清除log缓存

六、系统操作指令

命令命令作用命令具体操作备注
adb shell getprop ro.product.model获取设备型号adb shell getprop ro.product.model
adb shell getprop ro.build.version.release获取设备 Android 系统版本adb shell getprop ro.build.version.release
adb get-serialno获取设备的序列号(设备号)adb get-serialno
adb shell wm size获取设备屏幕分辨率adb shell wm size
adb shell screencap -p 截图在设备内的路径设备屏幕截图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 <数值>模拟系统按键(Ctrl+点击 )跳转到“数值对应的按键”列表
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(分辨率)

数值对应的按键
数值对应按键备注
0KEYCODE_UNKNOWN
1KEYCODE_MENU
2KEYCODE_SOFT_RIGHT
3KEYCODE_HOME
4KEYCODE_BACK返回系统主页
5KEYCODE_CALL
6KEYCODE_ENDCALL
7KEYCODE_0
8KEYCODE_1
9KEYCODE_2
10KEYCODE_3
11KEYCODE_4
12KEYCODE_5
13KEYCODE_6
14KEYCODE_7
15KEYCODE_8
16KEYCODE_9
17KEYCODE_STAR
18KEYCODE_POUND
19KEYCODE_DPAD_UP
20KEYCODE_DPAD_DOWN
21KEYCODE_DPAD_LEFT
22KEYCODE_DPAD_RIGHT
23KEYCODE_DPAD_CENTER
24KEYCODE_VOLUME_UP增加音量
25KEYCODE_VOLUME_DOWN
26KEYCODE_POWER
27KEYCODE_CAMERA
28KEYCODE_CLEAR
29KEYCODE_A
30KEYCODE_B
31KEYCODE_C
32KEYCODE_D
33KEYCODE_E
34KEYCODE_F
35KEYCODE_G
36KEYCODE_H
37KEYCODE_I
38KEYCODE_J
39KEYCODE_K
40KEYCODE_L
41KEYCODE_M
42KEYCODE_N
43KEYCODE_O
44KEYCODE_P
45KEYCODE_Q
46KEYCODE_R
47KEYCODE_S
48KEYCODE_T
49KEYCODE_U
50KEYCODE_V
51KEYCODE_W
52KEYCODE_X
53KEYCODE_Y
54KEYCODE_Z
55KEYCODE_COMMA
56KEYCODE_PERIOD
57KEYCODE_ALT_LEFT
58KEYCODE_ALT_RIGHT
59KEYCODE_SHIFT_LEFT
60KEYCODE_SHIFT_RIGHT
61KEYCODE_TAB
62KEYCODE_SPACE
63KEYCODE_SYM
64KEYCODE_EXPLORER
65KEYCODE_ENVELOPE
66KEYCODE_ENTER
67KEYCODE_DEL
68KEYCODE_GRAVE
69KEYCODE_MINUS
70KEYCODE_EQUALS
71KEYCODE_LEFT_BRACKET
72KEYCODE_RIGHT_BRACKET
73KEYCODE_BACKSLASH
74KEYCODE_SEMICOLON
75KEYCODE_APOSTROPHE
76KEYCODE_SLASH
77KEYCODE_AT
78KEYCODE_NUM
79KEYCODE_HEADSETHOOK
80KEYCODE_FOCUS
81KEYCODE_PLUS
82KEYCODE_MENU
83KEYCODE_NOTIFICATION
84KEYCODE_SEARCH
85TAG_LAST_KEYCODE
查看性能(命令后面的代号和对应信息)
代号对应信息备注
a设备基本信息
b内存使用情况
cCPU使用情况
d/proc文件夹中保存的系统各种实时信息,特别是内存使用方面的详细信息,如用procrank命令获取的按内存使用率情况排序的进程列表
e内核的一些信息
f进程列表
g各种进程中的线程列表以及各线程的堆栈信息
h各进程打开的文件
iLogcat中的三个环状日志的内容,分别是系统主日志SYSTEM、事件日志EVENT和无线电日志RADIO
j网络相关的信息
kdf命令输入的文件系统使用率信息
m系统中安装的应用包信息
ndumpsys命令输出的信息
o正在运行的应用列表
p正在运行的服务列表

七、adb monkey常用命令参数

adb shell monkey -help

adb shell monkey -help

基本参数说明
-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)