一、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 <device-ip-address>
<device-ip-address>为手机上查到的IP地址,如查到是172.11.111.111
则运行命令:adb connect
7.确认连接状态:adb devices
断开无线连接
命令:adb disconnect <device-ip-address>
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 <apk路径> | 安装 软件(-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 <filename> | 将日志输出到文件 |
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 <seednumber> 事件数 | 指定伪随机数生成器的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 <端口号>
2.8.3 日志分析
日志分析 | |
---|
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 |