ADB基本命令与Monkey命令

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345