刚从web转到app测试,很多知识需要补充,记录一下

1.概念

其实我们口中所讲的adb是个泛指,这其中有两个工具——Fastboot和ADB

fastboot 快速启动,usb链接数据线的一种刷机方式

ADB 调试安卓或者按照app的工具,是安卓sdk中的一种工具,用此工具可以调试安卓模拟器或者真机

ps:冷知识

一般Android设备连接WinXP是无需安装驱动的

2.adb的功能

运行设备的shell(命令行)

管理模拟器或设备的端口映射

计算机和设备之间上传/下载文件

将本地apk软件安装至模拟器或android设备

ADB是一个客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备。而ADB驱动就是电脑与android设备的通信的客户端驱动程序。

所有能对手机的操作都能用adb实现。也就是说如果你玩的6,你就是触摸屏完全坏了,显示屏完全坏了,就只是给你一个主板,你照样能完成你要做的动作。当然在一般场景不推荐这样做,效率优先嘛。

ps:下载adb工具的时候,很多包都把这两个工具打包在一起了

3.使用方法

a.电脑下载并安装好adb工具

安卓开发者网站SDK Platform Tools release notes  |  Android Developers 下载对应的adb安卓包

解压后,配置环境变量,即有adb.exe的那层目录文件路径配置在环境变量中path中

cmd输入adb,如果有adb版本信息,证明电脑已经安装adb工具成功

ps:

如果没有配置adb环境变量,需要先cd到adb.exe那层目录下,再去输入adb命令才能成功

或者在adb.exe所在文件夹下的空白处,按住shift+右键,会出现以下选项 “在此处打开打开powershell窗口”,进入powershell窗口后,先输入cmd命令切换到命令提示符模式,再输入adb命令即可进入adb模式

b.确保手机已开启usb调试模式

手机数据线链接电脑,cmd中输入adb devices 查看已链接成功的设备

c.通过驱动软件,驱动精灵/驱动人生等,将你的android手机驱动安装好  (这个看网上都有说,但是不知道为什么,我的手机并没有需要这个步骤,有点奇怪)

a.b操作以后,我们技能对手机进行adb命令操作了

4.使用原理

adb是一个c/s架构程序,由三部分组成

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

2.运行在pc端的adb server:

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

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

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

总结起来就是:

adb有三大部分组件:

客户端(client)

运行在你自己的电脑上,可以通过shell来调起一个客户端

服务器(server)

运行在电脑的后台,负责管理client和damon进行通信

守护进程(damon)

5.开始使用adb命令,常用操作命令如下:

基本命令格式:

adb [-d|-e|-s ]

-d 指定当前唯一通过 USB 连接的 Android 设备为命令目标
-e 指定当前唯一运行的模拟器为命令目标
-s <serialNumber> 指定相应 serialNumber 号的设备/模拟器为命令目标

在多个设备/模拟器连接的情况下较常用的是 -s 参数,serialNumber 可以通过 adb devices 命令获取

如:

adb -s cf264b8f shell wm size  获取手机屏幕尺寸

作为测试需要掌握的adb命令:

1.adb shell 进入adb  shell模式

2.adb pull <手机路径> <电脑路径> 把手机中文件拉去到电脑中  手机路径可以用ls/cd等来找到3

1.adb install +包名       adb安装apk (覆盖安装是使用 -r 选项)

2.adb uninstall +包名      adb卸载apk

3.adb connect +设备IP      网络连接Android设备

4.adb reboot       重启Android设备

5.adb devices      获取连接的设备列表及设备状态

6.adb get-state    获取设备的状态 (设备的状态有 3 钟,device:设备正常连接 , offline:连接出现异常,设备无响应 , unknown:没有连接设备)

7.查看运行在 Android设备上的 adb 后台进程:

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

adb shell 命令:

adb shell 命令 
adb 命令是 adb 这个程序自带的一些命令,而 adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下

8.1. adb shell  bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误

输出比较多,建议重定向到一个文件中

adb shell dumpsys > d:\bugreport.log

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

8.2.1  adb shell pm list package      列出所有的应用的包名 (-s:列出系统应用  -3:列出第三方应用 -f:列出应用包名及对应的apk名及存放位置  -i:列出应用包名及其安装来源)

8.2.2  adb shell pm path+包名     列出对应包名.apk 位置

8.2.3  adb shell pm install +apk存放路径   安装应用(目标 apk 存放于PC端,用 adb install 安装   目标 apk 存放于Android设备上,用 pm install 安装)

8.3 am

8.3.1 adb shell  am start +包名/.Activity (要启动的Activity)     启动一个 Activity (-s先停止目标应用,再启动  -w 等待应用完成启动  -a 启动默认浏览器打开一个网页例:adb shell am start -a android.intent.action.VIEW -d http://testerhome.com)

8.3.2  adb shell am monitor        监控 crash 与 ANR

8.3.3  adb shell am force-stop    后跟包名,结束应用

8.3.4  adb shell am startservice    启动一个服务

8.3.5  adb shell am broadcast       发送一个广播

8.4 input

这个命令可以向 Android 设备发送按键事件

8.4.1 adb shell input text +具体内容    发送文本内容,不能发送中文

8.4.2 adb shell input keyevent + 按键事件   发送按键事件 例如:adb shell input keyevent KEYCODE_HOME 模拟按下Home键

8.4.3 adb shell input tap +触摸事件的位置 , 对屏幕发送一个触摸事件 例如:点击屏幕上坐标为 500 500 的位置(adb shell input tap 500 500)

8.4.4 adb shell input tap , 对屏幕发送一个触摸事件

8.4.4 adb shell input swipe   滑动事件  例如:从右往左滑动屏幕

adb shell input swipe 800 600 100 600
8.5 screencap

截图命令

adb shell screencap -p /sdcard/DCIM/screenTest.png
8.6 screenrecord

4.4以上系统版本新增的录制命令

adb shell screenrecord /sdcard/demo.mp4
执行命令后操作手机,ctrl + c 结束录制,录制结果保存至 sdcard/ 下

8.7 ime

列出设备上的输入法

adb shell ime list -s

另一种不需要数据线链接手机的adb方式:

通过WiFi进行远程调试,此时我们就可以不需要通过USB线将手机连接到电脑了,但是有如下注意事项:

1、确保手机和电脑处于同一网络中(连接的同一个路由器)

2、提前通过adb tcpip 5555来确定通讯的端口号

3、再通过adb connect 加上你自己手机的ip地址来进行连接

如果想要取消连接,直接使用adb disconnect命令即可

启动 adb server 命令:

adb命令

有些手机需要解锁system分区(如小米)

输入:adb root

输入:adb disable-verity

查看手机连接状态:adb device

获得root权限:root

设置超级用户模式 : su

退出su : exit

重启命令:adb reboot

重启到Rec:adb reboot recovery

重启到Fastboot:adb reboot bootloader

推送ROM包:adb sideload <Rom包>

把文件从手机中复制到电脑上 : adb pull <手机路径> <电脑路径>

把文件从电脑复制到手机上 : adb push <电脑路径> <手机路径>

重新挂载文件系统 : adb remount

安装软件 : adb install apk文件名称.apk

卸载apk软件 : adb uninstall apk包名.apk

Fastboot命令:

查看连接状态 :fastboot devices

重启 :fastboot reboot

重启到Fastboot :fastboot reboot-bootloader

除非你很了解该命令,否则以下命令请谨慎使用:

解锁 :fastboot flashing unlock或fastboot oem unlock

上锁 :fastboot flashing lock或fastboot oem lock

清除分区数据 :fastboot erase <boot/system/data/cache/userdata/recovery>

清除分区(四清) :fastboot erase system -w

格式化分区数据 :fastboot format <boot/system/data/cache/userdata/recovery>

烧写分区 :fastboot flash < boot/system /recovery/radio/bootloader/ splash1/>

遇到的问题:

1.adb root没有生效

这个真的无需内核是否支持,与内核无关,即原生的就行。手机拥有可以 授权的工具。

2,百度后,说需要自己先下载root工具,获取root权限后,再次执行命令才有用,

推荐下载刷机精灵在电脑上一键root

作为测试人员,不能不懂的adb命令和操作相关推荐

  1. 车载测试——你需要掌握的Adb命令

    这两年,测试从业人员遇冷令很多人都没了方向. 有的人想转行: 有的人想继续深耕: 可是大家都在说,冬天来了,春天还会远吗. 你眼下正经历的,到底是初冬还是初春,你正经历着的磨难,最难究竟有多难. 此博 ...

  2. Get技能 | 敏捷测试:测试人员不能不懂的迭代复盘

    1 敏捷测试的定义 什么是敏捷测试 "敏捷测试"既不是一种测试方法,也不是一种测试方式,而是为了适应敏捷开发而特别设计的一套完整的软件测试解决方案.这个解决方案应该能够支持持续交付 ...

  3. python3调用adb命令_Python操作adb命令

    1.代码 import os adb_dic = { '1': 'adb devices', '2': 'adb shell pm list packages', '3': 'adb shell pm ...

  4. 技术分享 | App测试时常用的adb命令你都掌握了哪些呢?

    本文节选自霍格沃兹测试开发学社内部教材 adb 全称为 Android Debug Bridge(Android 调试桥),是 Android SDK 中提供的用于管理 Android 模拟器或真机的 ...

  5. adb命令在App测试时你还会遗忘吗?

    adb 全称为 Android Debug Bridge(Android 调试桥),是 Android SDK 中提供的用于管理 Android 模拟器或真机的工具. adb 是一种功能强大的命令行工 ...

  6. android adb命令安装和删除apk应用

    一.环境 android 开发 android sdk都应该下载了. 老版本adb在...AppData\Local\Android\sdk\tools 文件夹下 新版本Sdk ..AppData\L ...

  7. 安卓中adb命令工作的底层原理及使用举例

    目录 1. adb安卓调试桥 2.adb的组成 3.adb命令的使用举例: 3.1什么是应用包?什么是应用界面? 3.2 adb 命令如何获取应用应用包名和应用界面名? 1. adb安卓调试桥 adb ...

  8. (转载)Mac系统下利用ADB命令连接android手机并进行文件操作

    Mac系统下利用ADB命令连接android手机并进行文件操作 标签: Mac adb android 2016-03-14 10:09 5470人阅读 评论(1) 收藏 举报  分类: Androi ...

  9. adb logcat 抓取日志_App专项测试操作指南-2- 常见的ADB命令(上)

    上一章节我们介绍了App测试环境的搭建与配置,本节开始我们主要学习常见的ADB命令; 简介 ADB(Android Debug Bridge)工具,我们可以管理设备或手机模拟器的状态.还可以进行很多手 ...

最新文章

  1. 不能将参数 2 从“const char *”转换为“LPCWSTR”【转】http://blog.sina.com.cn/s/blog_4a94a0db0100ktxp.html...
  2. Thinkphp3.2.3打印上一句执行的sql语句
  3. Linux shell multifile content replace with sed
  4. matlab将x排序 y随之变化,在MATLAB中:XData和YData如何用更改的行数更新?
  5. 将a数组部分给b数组c语言,C语言第6章1 数组.ppt
  6. android 仿ios三级联动,仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果...
  7. 使用file_get_contents下载图片
  8. paip.语义分析--分词--常见的单音节字词 2_deDuli 单字词 774个
  9. 万字精选长文,深入解读房地产土地投资测算路径(附下载)
  10. lpt监控安装_lpt1(如何在lpt1端口安装打印机)
  11. Tomcat做成系统服务
  12. 星巴克与阿里巴巴合作咖啡外卖
  13. 计算机学院开学发言,开学典礼 | 计控学院研究生代表发言稿
  14. 底层文件I/O和ANSI标准I/O的区别
  15. 计算机组成原理随堂作业,2019-华南理工-计算机组成原理-随堂作业
  16. 亚马逊的规则你知道多少
  17. 股票配资系统平台源码搭建-股票配资交易软件开发
  18. Risc-v 技术架构
  19. Spring Data ElasticSearch 3.2版本发布,相关新特性说明
  20. 【UE4教程】Unreal 4.22 UI显示指定物体-实时渲染

热门文章

  1. C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配。
  2. vmware虚拟机安装win7_虚拟机VMware安装使用设置教程
  3. BLESS的安装---一个问题recompile with -fPIC的解决
  4. 塞瓦维斯特定理(不定方程)
  5. 如何将pip更新到最新版本?
  6. Unity捕鱼达人5-----鱼群的生成
  7. Cenots7安装vim
  8. Go语言GoFrame开发框架
  9. 小班计算机游戏教案,小班游戏教案10篇
  10. 公司团建游戏《狼人杀》规则介绍