2020-03-15

ADB 安卓调试桥 常见命令

针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中。

Android Debug Bridge

adb 其实就是 Android Debug Bridge, Android 调试桥的缩写,adb 是一个 C/S 架构的命令行工具,用于通过电脑端与模拟器或者真实设备交互。在某些特殊的情况下进入不了系统,adb就派上用场啦!主要由 3 部分组成:

· 运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试

· 运行在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的连接

adb 服务启动后,Windows 可以在任务管理器中找到 adb.exe 这个进程

· 运行在 Android 设备上的 adb 后台进程

执行 adb shell ps | grep adbd ,可以找到该后台进程,windows 请使用 findstr 替代 grep

通过adb操作android设备

连接上数据线,然后把手机开发者模式打开,打开usb调试。

adb 命令

在开发或者测试的过程中,我们可以通过 adb 来管理多台设备,其一般的格式为:

adb [-e | -d | -s <设备序列号>] <子命令>

在配好环境变量的前提下,在命令窗口当中输入 adb help 或者直接输入 adb ,将会列出所有的选项说明及子命令。

这里介绍一些里面常用的命令:

1.adb devices , 获取设备列表及设备状态

2.adb get-state , 获取设备的状态

设备的状态有 3 钟,device , offline , unknown

device:设备正常连接

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

unknown:没有连接设备

3.安装卸载应用程序

adb install 用于安装

安装成功,返回成功提示 "Success";

安装失败,会返回以下:

INSTALL_FAILED_ALREADY_EXISTS

此时需要用 -r 参数来重新安装。

INSTALL_FAILED_SIGNATURE_ERROR

应用的签名不一致,可能是发布版和调试版签名不同所致。也有可能是没卸载旧应用导致。

INSTALL_FAILED_INSUFFICIENT_STORAGE

存储空间不足,需要检查设备存储情况。

adb uninstall 用于卸载

adb uninstall 后面带的是应用的包名,而不是应用名。

查看系统所有应用的包名:

adb shell pm list packages –f

4.上传、下载文件

adb push 命令将PC机上的文件推到 DLT-RK3288 机器上;

adb pull  命令将DLT-RK3288机器上的文件拉到PC机上;

例如:

adb push d:/new.txt /sdcard/  

将D盘下new.txt文件 推到内部存储器

adb pull /sdcard/new.txt    d:\

将DLT-RK3288 内部存储器根目录下的new.txt 拉到D盘

5. adb shell pm list package

Package Manager , 可以用获取到一些安装在 Android 设备上得应用信息

-s:列出系统应用

-f:列出应用包名及对应的apk名及存放位置

查看当前运行的应用包名及 activity名:adb shell dumpsys window | findstr mCurrentFocus 

过滤应用

5.adb shell

通过adb shell 命令,就可以进入设备或者模拟器的shell环境了,在这个Linux shell中,我们就可以执行各种Linux命令了。

如果只想执行一条shell命令,就可以采用:adb shell [shell_command],在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息。

6.常见命令:

如 ls, cd, rm, mkdir, touch, pwd, cp, mv, ifconfig, netstat, ping, ps, top等,进入adb shell即可执行,与linux相似

7. adb logcat

一.在cmd窗口查看手机的Log日志

有时候我们在手机程序上的日志要在其他地方调试,然后要看里面的Log日志。在cmd窗口中输入如下命令:

//格式1:打印默认日志数据

adb logcat

//格式2:需要打印日志详细时间的简单数据

adb logcat -v time

//格式3:需要打印级别为Error的信息

adb logcat *:E

//格式4:需要打印时间和级别是Error的信息

adb logcat -v time *:E

//格式5:将日志保存到电脑固定的位置,比如D:\log.txt

adb logcat -v time >D:\log.txt

这时手机日志更新什么日志,cmd窗口也会同步更新数据。

但是这样没有过滤条件,如果Log日志很多,很难找到我们想要的信息,

当然也可以复制cmd中的数据到一个文本中慢慢处理的,就是效率不高。

下面介绍adb logcat中的详细参数命令以及如何才能高效的打印日志,或者把日志保存到我们指定的位置。

二.adb logcat 详解

adb logcat如果用过,但是具体命令又不记得,可以输入adb logcat -help,查看一下一些简单的数据格式:

日志过滤:adb logcat <tag>[:priority]

tag表示标签,priority输出的级别,日志默认级别是V,如果错误日志我们选择E就可以。

Android 的日志分为如下几个优先级(priority):

V —— Verbose(最低,输出得最多)

D —— Debug

I —— Info

W —— Warning

E —— Error

F —— Fatal

S —— Silent(最高,啥也不输出)

按某级别过滤日志则会将该级别及以上的日志输出。比如,命令:adb logcat *:W

其实*可以是某个tag,如果没有指明,就表示所有。

tag可以由多个 [:priority] 组成。比如,命令:

adb logcat ActivityManager:I MyApp:D *:S

表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)。

adb logcat选项解析

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

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

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

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

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

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

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

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

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

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

把日志信息保存到电脑中

adb logcat最后添加” > 保存文件的地址,比如需要将的信息保存到电脑中使用下面的命令: adb logcat -v time > D:\log.txt

8.monkey测试

一、Monkey测试简介

Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压

二、Monkey命令的简单帮助

要获取Monkey命令自带的简单帮助,在CMD中执行命令:

adb shell monkey –help

四、Monkey命令参数介绍

说明:第一个-s指定设备,如果只连接了一台设备,可不用该参数。

-p <apk包名>只允许系统启动指定的app,如果不指定,将允许系统启动设备中的所有app,也可指定多个包。

--throttle <毫秒数> 指定用户操作(事件)间的时延。

--ignore-crashes 指定当应用程序崩溃时,Monkey依然发送事件,直到事件计数完成。

--ignore-timeouts 当应用程序发生ANR错误时,Monkey依然会发送事件,直到事件计数完成。

第2个-s,用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

-v 用于指定反馈信息级别,总共分为level 0、level 1、level 2三个级别,级别越高,输出的日志越详细。

日志级别 Level0 示例 adb shellmonkey -p com.amaker.mp –v 100

说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息

日志级别 Level 1 示例 adb shellmonkey -p com.amaker.mp –v -v 100

说明 提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别 Level 2 示例 adb shellmonkey -p com.amaker.mp –v -v –v 100

说明 最详细的日志,包括了测试中选中/未选中的Activity信息

最后的数字(这里是500):表示Monkey程序模拟500次随机用户操作事件。

>输出测试结果到D:\monkeylog.txt

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

推荐阅读更多精彩内容