adb学习记录(二)

adb学习记录(二)

参考视频:https://www.bilibili.com/video/BV1Sg411u7GE?p=

五、adb进阶命令

  1. adb push <本地文件路径> <手机存储文件夹路径>
    将电脑上的文件传到手机指定路径下,文件路径使用绝对路径
  2. adb pull <手机文件路径> <本地存储文件夹路径>
    将手机上的文件拉到本地指定路径下
  3. 日志的级别:优先级从上到下逐级升高
    V-明细verbose
    D-调试debug
    I-信息info
    W-警告warn
    E-错误error
    F-严重错误fatal
    S-无记载silent
  4. adb logcat
    打印系统默认日志
    -v time日志添加时间然后打印,线程日志区别使用-v threadtime
    -v color不同级别日志用不同颜色区别
    -f <手机文件路径>将日志存放到手机的指定文件里
    > <电脑文件路径>将日志存放到电脑的指定文件里
    -c清理之前缓存的日志
    "*:<日志级别>"打印当前级别及以上级别的日志,例:adb logcat "*:W"
    <tag>:level "*:<日志级别>"打印当前级别及以上级别的日志,例:adb logcat opengl-gc:D "*:S"
  5. adb shell input tap <x坐标> <y坐标>
    模拟点击动作
  6. adb shell input text <文本内容>
    模拟输入操作,将文本内容输入到输入栏里,不要使用中文
  7. adb shell input swipe <起点x> <起点y> <终点x> <终点y> <滑动时长>
    模拟手机滑动操作,滑动时间单位是ms
  8. adb shell input keyevent 4
    模拟返回键
  9. adb shell input keyevent 3
    模拟home键,对于这些按键的key值基本都是固定的,可以直接百度到
  10. adb shell dumpsys cpuinfo
    获取CPU的使用情况
  11. adb shell dumpsys cpuinfo
    获取内存的使用情况
  12. adb shell dumpsys meminfo <包名>
    获取指定应用的内存使用情况
  13. adb shell top
    实时显示当前时间的各个进程的系统资源使用情况,类似于windows的任务管理器
  14. adb shell top | findstr "<包名>"
    获取某个应用的系统资源使用情况,top后面加-d 1代表每隔1S打印一次
  15. adb shell dumpsys battery
    查看手机电池状态

六、monkey压力测试

  1. adb shell monkey <事件数>
    随机发送<事件数>的事件,monkey后面加-v会将事件日志以及一些异常情况打印出来,如果加的是-vv或者-vvv,打印的信息会更加全面
  2. monkey的停止条件:事件数执行完毕、遇到崩溃或者异常、关闭monkey进程。
  3. 关闭monkey进程的方式:adb shell进入手机内环境,ps |grep monkey查看monkey运行的进程号,kill -9 <进程号>关闭进程
  4. adb shell monkey -p <包名> -vvv <事件数>
    只对某个应用发送随机事件,可以针对多个应用,重复加-p <包名>即可
  5. adb shell monkey -p <包名> --throttle <时间> -vvv <事件数>
    表示针对这个应用发送事件的事件间隔,单位是ms
  6. adb shell monkey -p <包名> --throttle <时间> -s <种子seek> -vvv 100
    每次进行monkey测试都会产生一个monkey的seek,我们想要复刻此次monkey测试,就可以把seek号传进去即可
  7. 事件分类:
    --pct-touch:触摸事件
    --pct-motion:滑动事件
    --pct-trackball:轨迹球事件
    --pct-nav:基本导航事件
    --pct-majornav:主要导航事件
    --pct-syskeys:系统按键事件
    --pct-appswitch:activity之间的切换事件
    --pct-pinchzoom:缩放事件
    --pct-rotation:屏幕旋转事件
    --pct-flip:键盘事件
    --pct-anyevent:任意事件(不常用事件)
    我们进行monkey测试时可以固定分配以上事件的百分比,分配格式:<指令> <比例>
    eg:adb shell monkey -p <包名> --pct-touch 80 --throttle <时间> -vvv 100 在100个事件中触摸事件占比80%
  8. 分配事件比例的注意点:
    默认是由monkey自动分配11个事件的比例;
    当我们只分配了其中部分事件,则其它事件由monkey在剩余的比例中自动分配;
    分配事件比例之和最大不能超过100%,否则会出现错误;
  9. 忽略异常以及几个常用的指令:
    当有异常或者程序崩溃时会导致monkey停止,这时我们可以通过以下三个指令去忽略异常:
    --ignore-crashes:忽略崩溃
    --ignore-timeouts:忽略超时
    --ignore-security-exceptions:忽略安全异常
    eg:adb shell monkey -p <包名> --throttle <时间> --ignore-crashes --ignore-timeouts --ignore-security-exceptions -vvv 100

其它了解的指令:
--kill-process-after-error:发生错误后直接杀掉进程
--dbg-no-events:初始化启动的activity,不产生任何事件
--hprof:在事件序列发送前后立即生成分析报告
--monitor-native-crashes:跟踪本地方法的崩溃问题
--wait-dbg:直到连接了调试器才执行monkey测试
--bugreport:当ANR,系统无响应,crash的时候获得bugreport
10. 收集日志:
(1)在最后加指令> <文件路径>,会将日志打印到该文件
eg:adb shell monkey -p com.tencent.mm --throttle 300 -vvv 100 > LOG.log
(2)先使用adb logcat -v time '*:E' > log.log,然后另开一个控制窗口跑普通monkey命令即可
11. 日志分析:
(1)crash闪退
(2)exception异常
(3)force closed强制退出
(4)ANR 程序无响应

文章旨在入门使用,很多工作实际应用只需要你看懂一些指令,并不需要你全部掌握,如文章有错误的地方,欢迎大家指正。互相交流,共同进步。

posted @ 2022-05-27 15:11  呆XX  阅读(63)  评论(0编辑  收藏  举报