刚从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工具
安卓开发者网站https://developer.android.google.cn/studio/releases/platform-tools?hl=en 下载对应的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. 测试人员必备之 mysql 常用命令学习指南

    1.数据库连接 1.通过命令行连接数据库 [root@localhost ~]# mysql -u root -p Enter password: 输入以上命令,回车后输入密码,回车,出现 mysql ...

  2. 为什么测试人员必须掌握Linux?

    相信点进来的小伙伴不是对Linux感兴趣就是对测试感兴趣了,也希望本文可以帮助之前接触过Linux的小伙伴找到继续坚持学习下去的动力,之前没接触过Linux的小伙伴也能找到开始学习Linux的兴趣. ...

  3. 08- adb常用命令以及模拟器链接adb命令

    adb 命令简介 ADB即 Android debug bridge.是Android下面一个通用的调试工具. 熟练使用adb命令会大大增加开发效率,作为测试人员,熟练掌握adb,我们可以管理设备或手 ...

  4. appium---常用的adb命令

    在测试android-app的时候,adb命令可以帮助我们解决许多问题 什么是adb Android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-to ...

  5. adb 命令简介

    adb命令配置 1 在命令行下,进入用户目录 cd $HOME 2 .bash_profile文件 输入下行命令获取当前文件列表: ls -al 查看文件列表,如果没有.bash_profile文件, ...

  6. 『与善仁』Appium基础 — 4、常用ADB命令(一)

    目录 1.启动和关闭ADB服务 2.查看ADB版本 3.指定adb server的网络端口 4.查询已连接设备/模拟器 5.获取安卓系统版本 6.为命令指定目标设备 7.发送文件到手机 8.从手机拉取 ...

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

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

  8. python学习之——调用adb命令完成移动端界面测试

    实现原理 Hierarchy Viewer:获得当前手机实时的UI信息,方便用于手机的自动化测试: python中的subprocess.Popen():调用系统命令: uiautomator工具:获 ...

  9. APP测试时常用adb命令

    ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(手机),故在其实工作可以给我们 ...

随机推荐

  1. 石川es6课程---1-2、ES6简介

    石川es6课程---1-2.ES6简介 一.总结 一句话总结: 从ECMAScript的历史发展来看,太顺了的时候总会遇到一挫折,比如ecma4 1.ECMAScript 和 JavaScript关系 ...

  2. https的那些坑

    1.时间 一些老手机不是系统自动对时,时间错误会报错. com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeExceptio ...

  3. Kotlin概述

    Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发. Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行. JetBrai ...

  4. Ubuntu 16.04下安装sublime Text的插件

    Sublime Text是什么: 它是一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比于难于上手的Vim,浮肿沉重 ...

  5. Jmeter (四)聚合报告详解

  6. 龙芯软硬件培训个人总结-day2

     今天最后一天,主要培训了BSP,QT,KVM云计算相关的内容.大致总结了一些自己关注的点.培训的资料已上传至服务器,如果需要可关注下方二维码,后台直接回复“资料”获取.关于实战的资料还未导出,等导出 ...

  7. cocos2dx[3.2](5) 屏幕适配

    1.两个分辨率 1.1.窗口分辨率 在AppDelegate.cpp中有个设置窗口分辨率的函数.该函数是设置了我们预想设备的屏幕大小,也就是应用程序窗口的大小. // glView->setFr ...

  8. python学习之面向对象(四)

    6.9 反射 反射是非常重要的内置函数之一. 反射是通过字符串去操作对象相关的属性,这里的对象包括:实列,类,当前模块,其他模块. 主要的四个函数: 查看: hasattr(对象,待查内容的字符串形式 ...

  9. 一本值得你反复研读的Python佳作《Python编程从0到1》

    现在的Python入门书太多太多了,究竟如何选择呢? 当然选最好的最入门的讲解最清晰的,没有那么多废话的. 现在就推荐一本<Python编程从0到1>,还带视频的,到时候跟大家一起学习沟通 ...

  10. mysql注入常用函数

    system_user()  系统函数名 user()   用户名 current_user()   当前用户名 session_user()    连接数据库的用户名 database()   数据 ...