美文网首页
ADB基本命令与Monkey命令

ADB基本命令与Monkey命令

作者: yertao | 来源:发表于2020-07-09 16:15 被阅读0次

    adb介绍:

    Android Debug Bridge(安卓调试桥) tools。它就是一个命令行窗口,用于通过电脑端与模拟器或者是设备之间的交互。

    ADB是一个C/S架构的应用程序,由三部分组成:

    运行在pc端的adb client:

    命令行程序”adb”用于从shell或脚本中运行adb命令。首先,“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。接下来,当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求;

    运行在pc端的adb server:

    ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上;

    运行在设备端的常驻进程adb demon (adbd):

    程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务。

    adb下载及安装

    链接:https://www.androiddevtools.cn/,将sdk下载解压到目录盘,创建Android_HOME系统变量,找到adb在SDK里的绝对路径,放入环境变量path中,%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools

    基本用法

    1.设备连接

    USB连接:

    Android设备正常开机,通过USB线与电脑连接

    开启开发者选项和USB调试模式

    设备驱动状态正常

    无线连接(需借助usb):

    1.将 Android 设备通过USB与电脑相连,且两者连到同一个局域网

    2. 让设备在 5555 端口监听 TCP/IP 连接:adb tcpip 5555

    4. 断开 USB 连接。

    5. 通过设备IP地址连接设备。adb connect <device-ip-address>

    (断开无线连接adb disconnect <device-ip-address>)

    2.基本命令

    命令含义

    adb verion查看adb版本

    adb start-server启动adb server(一般无需手动启动)

    adb kill-server停止adb server

    adb root以 root 权限运行 adbd

    adb unroot以 普通权限运行 adbd

    adb remount已读写方式挂载系分区/system

    adb devices查询已经链接的设备

    adb get-serialno打印设备序列号(和adb devices中的序列号一致)

    adb wait-for-device阻塞直到设备在线

    adb get-state查看设备状态:

    device:设备正常连接 

    offline:连接出现异常,设备无响应 

    unknown:没有连接设备

    adb status-window连续输出设备状态

    adb bugreport返回设备bug report相关的所有信息

    adb [-d|-e|-s ]adb -e shell //进入到模拟器中

    adb –d shell //进入到真机中

    adb –s <设备id> shell //进入到指定设备中(adb连接了多台设备需要用到此命令)

    adb shell svc wifi enable/disable开/关wifi

    adb reboot重启设备

    adb reboot-bootloader设备重启到bootloader模式

    adb reboot [bootloader|recovery]设备重启到bootloader或recovery模式

    adb tcpip <port>重启adbd在指定的tcp端口上进行监听

    adb usb重启adbd在usb上进行监听

    3.常用命令

    adb connect <设备id>连接到真机或模拟器

    adb  install E:\SDK\platform-tools\app-appchina-release.apk    安装apk包

    adb uninstall 包名     卸载apk包

    pm packageName简写

    adb  shell pm list packages    查看所有APK包名

    adb -s 127.0.0.1:21503 shell pm list packages    指定设备

    adb -s 127.0.0.1:62001 shell pm list packages -f    查看所有APK包名及路径

    adb shell pm clear packageName    清理应用数据

    adb shell am start -n 包名/Activity类名    启动应用

    adb shell am force-stop 包名    关闭应用

    adb shell screencap -p /sdcard/screencap.png    截屏

    日志抓取

    adb logcat 命令格式 :

    [adb] logcat [<option>] ... [<filter-spec>] ...

    其中<filter-spec> 可以由多个 <tag>[:priority] 组成

    adb logcat --help 查看内置的帮助说明

    选项解析 :(option)

    -- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志;

    --"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;

    --"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;

    --"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;

    --"-v"选项 : 设置日志的输出格式, 注意只能设置一项;

    --"-c"选项 : 清空所有的日志缓存信息;

    --"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;

    --"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;

    --"-g"选项 : 查看日志缓冲区信息;

    --"-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;

    --"-B"选项 : 以二进制形式输出日志;

    过滤项解析<tag>[:priority] , 标签:日志等级, 默认的日志过滤项是 " *:I " ;

    -- V : Verbose (明细);

    -- D : Debug (调试);

    -- I : Info (信息);

    -- W : Warn (警告);

    -- E : Error (错误);

    -- F: Fatal (严重错误);

    -- S : Silent(Super all output) (最高的优先级, 可能不会记载东西);

    例如:

    adb logcat | find "packageName" >d:\hello.txt     将logcat导出到d盘

    adb logcat | find "packageName"    在dos窗口中日志

    adb logcat ActivityManager:I MyApp:D *:S   //输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)

    Monkey命令

    一、Monkey事件注入机制

    Monkey注入系统事件是通过 framework 层的 hidenApi (如:activemanager,inputmanager,windowmanager) 获取系统服务。

             Monkey中有11种事件,这些事件在MonkeyEventSource中对事件之间的比例进行设置。Monkey事件根据类型比例生成事件队列,循环查找事件。

             a.触摸事件(inputmanager):包括屏幕以及物理键的触摸,滑动,点击事件。

             b.Activity事件(activemanager):是指我们调用Android系统组件的事件。

             c.Window事件(windowmanager):是指操作Window的事件,例如转屏

    二、基本参数介绍

    adb shell monkey -p com.tal.kaoyan -v 200 一个-v一级日志,越多越详细 最多可以写3个

    anr 表示Android未相应

    没有出现问题就会出现monkey finished

    adb shell monkey -p com.tal.kaoyan -v 200 >D:/test.txt 指定位置生成日志

    adb shell monkey -p com.tal.kaoyan --throttle 20 -v 200 执行200次每次间隔20毫秒

    adb shell monkey -p com.tal.kaoyan --ignore-orashes -v 200 出现问题会继续执行不会终止测试

    --ignore-crashes 忽略应用程序崩溃(Force & Close错误),继续发送执行事件,直到事件数执行完成

    --ignore-timeouts 通常,当应用程序发生任何超时错误(如“Application Not Responding”对 话框)时,Monkey将停止运行。如果设置此选项,Monkey将继 续向系统发送事件,直到计数完成

    --ignore-security-exceptions 通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey将 停止运行。如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成

    --kill-process-after-error 通常,当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。当设置了此选项时,将会通知系 统停止发生错误的进程。注意,正常的(成功的)结束,并没有停止启动的进程,设备只是在结束事件之 后,简单地保持在最后的状态

    -v -v二级日志

    --pct-touch 调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)

    --pct-motion 调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)

    --pct-trackball 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)

    --pct-nav 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)

    --pct-majornav 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)

    --pct-appswitch 调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法

    --pct-anyevent 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等

    压力测试

    --pct-syskeys 调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)

    adb -s 127.0.0.1:62001  shell monkey -p com.tal.kaoyan --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error -v-v --pct-syskeys 80 10000>E:\bugLog.txt

    相关文章

      网友评论

          本文标题:ADB基本命令与Monkey命令

          本文链接:https://www.haomeiwen.com/subject/iotscktx.html