一、adb指令相关参数
| 参数 | 含义 |
|---|
| -d | 指定当前唯一通过USB连接的android设备为命令目标 |
| -e | 指定当前唯一运行的模拟器问指令目标 |
| -s | 指定响应的设备为命令目标 |
| > | 将结果导成文件 |
二、adb相关指令
Android 基于 Linux。以“adb shell”开头的命令,都可以先执行adb shell命令,然后再执行“adb shell”之后的命令
如adb shell dumpsys activity,可以先执行adb shell,然后再执行dumpsys activity
2.1 adb无线连接(需要借助 USB 线)
操作步骤:
1.将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。
2.将设备与电脑通过 USB 线连接。
3.让设备在 5555 端口监听 TCP/IP 连接:adb tcpip 5555
4.断开 USB 连接。
5.找到设备的 IP 地址。 在【设置-关于手机-状态信息-IP地址】可以找到,也可以用adb命令查看
6.通过IP地址连接设备:adb connect
为手机上查到的IP地址,如查到是172.11.111.111
则运行命令:adb connect
7.确认连接状态:adb devices
断开无线连接
命令:adb disconnect
2.2 基础指令
| 命令 | 含义 |
|---|
| adb start-server | 启动adb server |
| adb kill-server | 停止adb server |
| adb version | 查看adb版本 |
| adb devices | 查看设备 |
| adb tcpip 5555 | 让设备在5555端口监听tcp/ip连接 |
| adb root | 获取系统root权限 |
| adb shell | 进入手机终端 |
| exit | 退出手机终端(CTRL+D也可以退出) |
| adb shell ls | 查看手机目录(等价于进入手机终端后运行ls) |
| adb shell data | 查看手机系统当前时间 |
2.3 软件相关指令
| 命令 | 含义 |
|---|
| adb install | 安装软件(-l安装到保护目录mnt/asec,-r允许覆盖,-s安装到指定设备,-d允许降级覆盖安装,-g授权所有运行时权限) |
| adb uninstall 包名 | 卸载应用(-k保留配置文件数据缓存,adb uninstall -k 包名) |
| adb shell pm list packages | 显示手机所有应用 |
| adb shell pm list packages -s | 显示手机系统自带应用(-s系统应用,-f应用关联的apk文件,-d查看disabled应用,-e查看enabled应用,-3第三方,-i应用的installer) |
| adb shell pm list packages aaa | 显示包名包含aaa的应用列表 |
| adb shell pm path <包名> | 显示应用路径 |
| adb shell dumpsys package <包名> | 显示应用详细信息 |
| adb shell “dumpsys window | grep mCurrentFoces” | 获取当前的页面名(先打开页面,再执行命令)(如果某个软件的某个页面,进入肯会出错,中间跳过了某些页面 |
| adb shell am start -n <包名>/<页面名> | 打开页面 |
| adb logcat ActivityManager:I | grep “cmp” | mac:获取启动页面(先执行命令在启动软件,结果为第一个cmp里面的内容) |
| adb logcat ActivityManager:I | findstr “cmp” | win:获取启动页面(先执行命令在启动软件,结果为第一个cmp里面的内容) |
| adb shell pm clear <包名> | 清除应用数据及缓存 |
| adb shell dumpsys meminfo <应用名> | 查看某个应用的内存 |
| adb shell top | grep “包名” | 查看某个包的一些性能指标 |
| adb shell top -d 1 | grep “包名” | 每个一秒查看某个包的一些性能指标 |
2.4 文件相关指令
| 命令 | 含义 |
|---|
| adb push 电脑路径 设备路径 | 文件传输(电脑到设备传文件) |
| adb pull 设备路径 [电脑路径] | 文件传输(设备到电脑传文件,电脑路径可省,就传在终端所在的路径下) |
| adb shell rm -rf 路径/文件 | 删除某文件 |
| adb shell mkdir 路径/文件名 | 创建文件 |
2.5 log相关指令
| 命令 | 含义 |
|---|
| adb logcat | 查看日志(V:明细(最低优先级),D:调试,I:信息,W:警告,E:错误,F:严重错误,S:无记载(最高优先级,绝不会输出任何内容))(Ctrl+c来停止抓取) |
| adb logcat -v time | 包含时间(默认就有) |
| adb logcat -v color | 使用不同颜色来显示每个优先级 |
| adb logcat -f | 将日志输出到文件 |
| adb logcat > log.log | 保存日志到PC端的log.log文件 |
| adb logcat -c | 清理已存在的日志 |
| adb logcat -v time “:w” | 打印w级别及以上的日志 |
| adb logcat ActivityManager:D ‘*:S’ | 过滤tag为ActivityManager,等级为D及以上的日志 |
| adb shell cat /proc/kmsg > d:\log.txt | 实时kernel log并保存为文件log.txt(Ctrl+c来停止抓取) |
2.6 模拟事件相关指令
| 命令 | 含义 |
|---|
| adb shell input tap x坐标 y坐标 | 模拟点击事件 |
| adb shell input <输入内容> | 模拟输入事件(光标要在输入框内) |
| adb shell swipe <起点x> <起点y> <终点x> <终点y> [滑动时长] | 模拟滑动事件(时长可不填) |
| adb shell input keyevent 4 | 模拟点击返回键(3home键,4返回键,5拨号键,6挂断电话,24增加音量,25减小音量,26电源,27拍照,64打开浏览器,82菜单键,164静音,176打开系统设置,187切换应用,207打开联系人,220减低屏幕亮度,221增加屏幕亮度,223系统休眠,224点亮屏幕) |
2.7 设备属性指令
| 命令 | 含义 |
|---|
| adb shell cat /proc/cpuinfo | 查看手机系统CPU使用情况 |
| adb shell cat /proc/meminfo | 查看手机系统内存使用情况 |
| adb shell dumpsys cpuinfo | 查看当前设备CPU使用情况 |
| adb shell dumpsys meminfo | 查看当前系统的内存 |
| adb shell dumpsys meminfo <应用名> | 查看某个应用的内存 |
| adb shell ps | 查看进程 |
| adb shell top | 查看cpu使用情况(实时) |
| adb shell top | grep “包名” | 查看某个包的一些性能指标 |
| adb shell top -d 1 | grep “包名” | 每个一秒查看某个包的一些性能指标 |
| adb shell dumpsys battery | 电池电量 |
| adb shell settings put global adb_enabled 0 | 关闭USB调试 |
| adb shell wm density reset | 恢复屏幕密度 |
| adb shell wm density 160 | 修改屏幕密度 |
| adb shell wm size 480x1024 | 修改分辨率 |
| adb shell wm size | 屏幕分辨率 |
| adb shell wm density | 屏幕密度 |
| adb shell dumpsys window displays | 显示屏参数 |
| adb shell cat /system/build.prop | 更多硬件与系统属性 |
| adb shell cat /sys/class/net/wlan0/address | mac地址 |
| adb shell ifcongfig | IP地址 |
| adb shell getprop ro.product.model | 查看设备信息 |
| adb shell dumpsys sensorservice | 查看sensor的信息 |
2.8 压测相关指令
压测相关:Monkry是用于稳定性与压力的命令行工具(长时间对手机进行某些操作)
压力测试:随机性,完整性,持续性
| 命令 | 含义 |
|---|
| adb shell monkey 100 | 100个随机事件(比如点击,移动等) |
| adb shell monkey -v 100 | 打印详细的日志(-vv更详细,-vvv最详细) |
| adb shell monkey -p 包名 事件数 | 测试一个包 |
| adb shell monkey -p 包名 -p 包名 事件数 | 测试多个包 |
| adb shell monkey -p 包名 --throttle 时长 事件数 | 指定事件时间间隔 |
| adb shell monkey -p 包名 --throttle 时长 -s 事件数 | 指定伪随机数生成器的seed值(种子数相同的两次运行顺序一样) |
| adb shell monkey -p 包名 -p 包名 --pct-touch 80 事件数 | 触摸事件比例为80% |
| adb shell monkey 事件数 > 文件路径 | 保存日志 |
2.8.1 设置事件比例参数
| monkey事件相关参数 | 概率 |
|---|
| –pct-touch | 触摸事件 (设定点击事件百分比) |
| –pct-motion | 滑动事件(设定动作事件百分比) |
| –pct-trackball | 轨迹事件(设定轨迹事件百分比) |
| –pct-nav | 导航事件(设定基本导航事件百分比,比如输入设备上下左右键) |
| –pct-majornav | 主要导航事件(设定主要导航事件百分比,比如中间键,返回键,菜单键) |
| –pct-syskeys | 系统按键事件(设定系统导航事件百分比,比如home键,back键,拨号键音量键) |
| –pct-appswitch | activity之间的切换(设定启动activity事件百分比) |
| –pct-pinchzoom | 缩放事件 |
| –pct-rotation | 屏幕旋转事件 |
| –pct-flip | 键盘事件 |
| –pct- anyevent | 任意事件(设定不常用事件百分比) |
2.8.2 事件忽略某些异常
| adb shell monkey -p 包名 --pct-touch 80 --ignore-crashes 事件数 | 触摸事件比例为80%(忽略崩溃) |
|---|
| –ignore-crashes | 忽略崩溃 |
| –ignore-timeouts | 忽略超时 |
| –ignore-security-exceptions | 忽略安全异常 |
| –kill-process-after-error | 发生错误后直接杀死进程 |
| –dag-no-events | 初始化启动的activity,但是不产生任何事件 |
| –hprof | 指定该项后在实践序列发送前后会立即分析报告 |
| –monitor-native-crashes | 跟踪本地方法的奔溃问题 |
| –wait-dbg | 直接连接调试器才执行monkey测试 |
| -bugreport | 党ANR,系统无响应,Crash的时候获得bugreport |
杀死进程停止测试:
adb shell
ps |grep monkey
kill -9 <端口号>
| 日志分析 | |
|---|
| crash | 闪退 |
| exception | 异常 |
| force closed | 强制退出 |
| anr | 程序无响应 |
2.9 实用功能
| 命令 | 含义 |
|---|
| adb exec-out screencap -p > E:/a.png | 截图 |
| adb shell screenrecord /sdcard/filename.mp4 | 录制屏幕 |
| adb reboot | 重启手机 |
| adb shell svc wifi enable | 开启 WiFi |
| adb shell svc wifi disable | 关闭 WiFi |
| adb reboot recovery | 重启到 Recovery 模式 |
| adb reboot bootloader | 重启到 Fastboot 模式 |
| adb shell setenforce 1 | 启用 SELinux |
| adb shell setenforce 0 | 禁用 SELinux |
| adb enable-verity | 启用 dm_verity |
| adb disable-verity | 禁用 dm_verity |