Appium自动化测试教程-自学网-adb命令
adb命令:
adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用。
Tips: 在 android_sdk/platform-tools/ 中找到 adb 工具,然后根据其具体的路径配置好环境变量。然后启动cmd 输入‘adb’即可查看是否配置成功。
adb的工作原理:
在客户端发送adb命令后,通过5037端口传到adb server和手机进行通信。
adb常用命令:
查看adb版本
adb version
连接夜神模拟器(此处分别演示模拟器和真机连接)
adb connect 127.0.0.1:62001
Tips:
夜神模拟器的端口是规律的,第一个模拟器端口是62001,第二个模拟器端口是62025,第三个是62025+1,依此类推。

adb shell:
android 设备底层是 linux 系统。 shell 是 linux 系统的字符交互界面。
adb shell
#进入指定设备shell
adb -s 127.0.0.1:62001 shell
#退出adb shell
exit
进入adb shell后有两种状态显示:#代表有root权限,$代表没有root权限
root@android:/ #
shell@mx4:/ $

root知识小科普
“To err is human, but to really foul up everything, you need root password.”
“人非圣贤孰能无过,但是拥有root密码就真的万劫不复了。”
root用户是系统中唯一的超级管理员,它具有等同于操作系统的权限。一些需要root权限的应用,譬如广告阻挡,卸载系统预装App是需要root权限的。可问题在于root比windows的系统管理员的能力更大,足以把整个系统的大部分文件删掉,导致系统完全毁坏,不能再次使用。所以,用root进行不当的操作是相当危险的,轻微的可以死机,严重的甚至不能开机。所以,在Unix、Linux及Android中,除非确实需要,一般情况下都不推荐使用root。
在设备安装apk
adb install 把apk拖到这里 回车即开始安装
adb install | -r <apkName> -r 覆盖原安装文件 -s 可以指定设备
eg:
#默认安装
adb install "C:\Users\Shuqing\Desktop\Appium 自动化测试教程\wandoujia.apk"
#覆盖安装
adb install -r "C:\Users\Shuqing\Desktop\Appium 自动化测试教程\wandoujia.apk"
#指定设备安装
adb -s 127.0.0.1:62001 install C:\Users\Shuqing\Desktop\Appium\kaoyan3.1.0.apk 自动化测试教程\wandoujia.apk"
卸载apk
1.首先进入设备的/data/app目录找到app包名
adb shell
cd /data/app/
2.执行命令删除
adb uninstall | -k <apkName> 卸载软件
adb uninstall com.wandoujia.phoenix2
Tips:安装后的包名系统会在末尾加上-1之类的数字,要去掉才可以成功卸载。 软件名称为包名,不要包含.apk
-k 加 -k 参数,为卸载软件但是保留配置和缓存文件.

查看设备上面安装的应用包名
adb shell pm list package
文件读取写入
将文件从PC写入到设备
adb push <local> <remote>
eg:
adb push C:\Users\Shuqing\Desktop\kyb.txt /sdcard
C:\Users\Shuqing\Desktop\kyb.txt: 1 file pushed. 0.1 MB/s (462 bytes in 0.005s)
将文件从设备读取到PC
adb pull <remote> <local>
eg:
adb pull /sdcard/server.log C:\Users\Shuqing\Desktop
/sdcard/server.log: 1 file pulled. 0.0 MB/s (196 bytes in 0.004s)
注意:由于权限问题,不能直接pull到电脑磁盘根目录,否则会报错:
C:\Users\Shuqing>adb pull /sdcard/server.log D:\\
adb: error: cannot create file/directory 'D:\\': No such file or directory
屏幕截图
$ adb shell screencap /sdcard/screen.png 截图放在sdcard中
adb pull /sdcard/screen.png C:\Users\Shuqing\Desktop 读取到电脑上

adb服务启动和关闭
adb kill-server 关闭adb服务
adb start-server 开启adb服务
Tips:如果5037端口被占用可以使用如下命令释放端口
C:\Users\Shuqing> netstat -ano | findstr "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 11072
TCP 127.0.0.1:5037 127.0.0.1:59519 TIME_WAIT 0
taskkill -f -pid XXX
小结
- adb是自动化非常重要的一个工具
- 目前很多PC客户端手机助手也是基于adb连接原理进行封装的。
- 可以将常用的adb命令封装成bat命令,随时可以运行。如:
.bat文件创建方法:
创建一个nodepad文件,编码类型选择UTF-8,输入内容如:
adbdevices.bat
adb devices
pause
保存为所有类型,取名.bat
双击运行即可。
Appium自动化测试教程-自学网-adb命令的更多相关文章
- Appium自动化测试教程-自学网-monkey简介
Monkey简介 在Android的官方自动化测试领域有一只非常著名的“猴子”叫Monkey,这只“猴子”一旦启动,就会让被测的Android应用程序像猴子一样活蹦乱跳,到处乱跑.人们常用这只“猴子” ...
- Appium自动化测试教程-自学网-安卓模拟器
安卓模拟器: 夜神模拟器安装配置 下载地址:https://www.yeshen.com 开启VT VT是什么?为什么要开启VT? VT,全称是Virtualization Technology,即是 ...
- Appium自动化测试教程-自学网-monkeyrunner简介
monkeyrunner简介 MonkeyRunner工具是使用Jython(使用Java编程语言实现的Python)写出来的,它提供了多个API,通过monkeyrunner API 可以写一个Py ...
- Appium自动化测试教程-自学网-monkey日志管理
日志管理作用 Monkey日志管理是Monkey测试中非常重要的一个环节,通过日志管理分析,可以获取当前测试对象在测试过程中是否会发生异常,以及发生的概率,同时还可以获取对应的错误信息,帮助开发定位和 ...
- Appium自动化测试教程-自学网-monkey自定义脚本实践
自定义脚本的稳定性测试 常规Monkey测试执行的是随机的事件流,但如果只是想让Monkey测试某个特定场景这时候就需要用到自定义脚本了,Monkey支持执行用户自定义脚本的测试,用户只需要按照Mon ...
- Appium自动化测试教程-自学网-monkey参数
monkey 参数 参数分类 · 常规类参数 · 事件类参数 · 约束类参数 · 调试类参数 常规类参数 常规类参数包括帮助参数和日志信息参数.帮助参数用于输出Monkey命令使用指导:日志信息参数将 ...
- Appium自动化测试教程-自学网-SDK
SDK:软件开发工具包,被软件开发工程师用于特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. 因此,Android SDK指的是Android专属的软件开发工具包. 1,安装 ...
- Appium自动化测试教程-自学网-app基础知识
Instrumentation的缺点是不支持跨应用,比如我想要先调起通讯录,在操作其他的app,则不支持. 第一步,应该确定系统哪些模块适合自动化.哪些不适合做自动化,明确做自动化给我们带来的好处是什 ...
- Appium自动化测试教程-自学网-Package与Activity
Package Package 包.只是在我们的app中这个Package是唯一的,就像你身份证号码一样.在我们做app自动化时,我们就需要知道他的Package,我们知道了Package那么也就知道 ...
随机推荐
- Java的设计模式(2)--单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点. 好处: (1)频繁使用的对象,可以省略new操作花费的时间,这对于那些重量级对象而言,是非常客观的一笔开销. (2)由于new的次数 ...
- yii2中通过migration创建数据表
### yii2中通过migration创建数据表 准备工作: 1.首先保证php写入了环境变量 2.在项目内创建migrations目录(base版的需要手动创建) 3.配置文件中正确配置了数据库信 ...
- 在VMware Workstation10下CentOS7虚拟机中创建与主机共享文件夹的详细步骤
一.前言 在使用虚拟机时,常常需要与宿主计算机(以下简称为主机)操作系统交换文件,为此需要在虚拟机与主机之间建立共享文件夹. 二. 安装VMTools 要使用共享文件机制,必须首先安装VMTools. ...
- Qt里的原子操作QAtomicInteger,有挑战性,使用Q_ATOMIC_INT{nn}_IS_SUPPORTED测试系统是否支持
所谓原子操作,即一系列复杂的操作能一气呵成,中间不被其他的操作打断.这在多线程程序中尤其常见,但要实现这种功能,既要考虑程序的良好设计,又要关心特定平台的体系结构和相关编译器对原子特性的支持程度.所以 ...
- 基于搜索的贝叶斯网络结构学习算法-K2
基于搜索的贝叶斯网络结构学习算法-K2 2018-04-05 19:34:18 ItsBlue 阅读数 3172更多 分类专栏: 贝叶斯网络 网络结构学习 版权声明:本文为博主原创文章,遵循CC ...
- dg环境连接ORA-00604,ORA-16000: database open for read-only access
报错信息 根据客户提供的报错信息, ORA-: error occurred at recursive SQL level ORA-: database open for read-only acce ...
- IntelliJ IDEA 之 配置JDK 的 4种方式
一.新建项目前配置JDK 打开IDEA集成开发环境工具,点击:File--Project Structure,如下图 在打开的页面中,选择SDKs属性,并点击中间的加号+,选择JDK,如下图 在打开的 ...
- MySQL NULL 使用带来的坑
MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...
- (详细)JAVA使用JDBC连接MySQL数据库(2)- MySQL Connectors
欢迎任何形式的转载,但请务必注明出处. 本节内容 mysql connectors介绍 下载安装 在java中配置 点击进入官网下载 一.mysql connectors介绍 mysql connec ...
- 运动的border,仿当当简易效果
突然想到以前看到当当上有个效果,当鼠标移上去,图片边框是运动添加上的,还以为是css3或者是canvas做的呢,做完幽灵按钮后,才知道,so easy,只不过是animate+position的杰作 ...