『与善仁』Appium基础 — 3、ADB命令介绍
1、ADB命令简介
ADB全名Andorid Debug Bridge
,是一个Debug调试工具,用这个工具可以直接操作管理Android模拟器或者真实的android设备。
- 开发安卓应用的程序员必须要掌握。
- 测试工程师在做安卓应用测试时,会使用到。
ADB是Android SDK
里的一个是一个C/S
架构的命令程序(platform-tools
文件夹中),其中客户端是我们操作的电脑,服务器端是Android设备。ADB就是起到调试桥的作用,通过这个桥我们可以管理设备或手机模拟器的状态,还可以进行安卓手机的很多操作,如安装软件、系统升级、运行shell命令等等。
换句话说,ADB就是连接Android手机与PC端的桥梁,可以让用户在电脑上通过终端ADB命令操作安卓手机/模拟器。
2、ADB命令运行原理
ADB是一个标准的C/S
结构的工具,是来连接开发电脑(客户端)和调试手机(服务端)的工具。
包含如下三个部分:
- Client端:运行在开发机器中,也就是你的开发PC机,用来发送ADB命令。
- Daemon守护进程:运行在调试设备中,可以是手机,也可以是模拟器,用来接收并执行ADB命令。
- Server端:作为一个后台进程运行在开发机器中(PC机)。 用来管理PC中的Client端和手机Daemon守护进程之间的通信。
如下图所示:
说明:
当你执行一条ADB命令的时候,ADB客户端会先接收你输入的命令,然后ADB客户端会把命令发送给ADB服务器,ADB服务器再把命令发送给手机中的
Daemon
(守护进程)。
Daemon
负责技术Server
端发送过来的命令,并且在手机中执行该命令。我们可以看到上图中的箭头都是双向的。
也就是说
Daemon
执行完的结果会返回给Server
端,Server
端再传递给Client
端。
Client
端再给终端程序显示。
总结:
- Android手机必须和电脑建立连接。
- Windows系统命令行终端中执行的命令,会发送到Andorid设备上执行。
3、通过ADB命令连接安卓模拟器
国内有很多款安卓模拟器,比如逍遥、雷电、MUMU、夜神等,我们以逍遥模拟器为例。
模拟器进行App自动化测试时,需要使用ADB来连接模拟器,链接后才能找到该手机。
具体操作步骤:
(1)安装安卓模拟器
在Windows环境下安装逍遥模拟器,执行XYAZ-Setup.exe
默认安装即可。
(2)ADB命令连接安卓模拟器
连接逍遥模拟器,21503
为逍遥模拟器的默认端口号。
1)打开命令行窗口,进入安装目录下...\Microvirt\MEmu
目录。
2)执行连接命令adb connect 127.0.0.1:21503
注意1:如果不进入到...\Microvirt\MEmu
目录中执行adb链接命令,会提示如下:
提示:开始的时候会出现这种情况,之后就没有这种问题了。打开命令行就可以直接执行ADB命令了。
注意2:ADB链接安卓模拟器的时候,模拟器要开启,否则出现如下提示:
3)执行查看所有连接的模拟器命令adb devices
如图所示:已经连上模拟器。
说着直接输入adb
,出现如下,也是配置成功了。
C:\Users\L>adb
Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as F:\DevInstall\envs\android-sdk-windows\platform-tools\adb.exe
global options:
-a listen on all network interfaces, not just localhost
-d use USB device (error if multiple devices connected)
-e use TCP/IP device (error if multiple TCP/IP devices available)
-s SERIAL use device with given serial (overrides $ANDROID_SERIAL)
-t ID use device with given transport id
-H name of adb server host [default=localhost]
-P port of adb server [default=5037]
-L SOCKET listen on given socket for adb server [default=tcp:localhost:5037]
...省略后面内容...
(3)常用Android模拟器端口号
链接Android模拟器命令adb connect
。
- 逍遥模拟器:
adb connect 127.0.0.1:21503
- 夜神模拟器:
adb connect 127.0.0.1:62001
- 雷电模拟器:
adb connect 127.0.0.1:5555
- MuMu模拟器:
adb connect 127.0.0.1:7555
- 天天模拟器:
adb connect 127.0.0.1:6555
- 海马模拟器:
adb connect 127.0.0.1:26944
『与善仁』Appium基础 — 3、ADB命令介绍的更多相关文章
- 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍
目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...
- 『与善仁』Appium基础 — 15、使用Appium的第一个Demo
我们使用Python语言作为测试脚本的编写语言. 执行脚本前提: Android模拟器或者手机是开机状态. 使用确保电脑和Android设备进行了链接. 也就是使用ADB命令adb connect链接 ...
- 『与善仁』Appium基础 — 16、APPium基础操作API
目录 1.前置代码 2.安装和卸载APP 3.判断APP是否已安装 4.关闭APP软件和关闭驱动对象 5.发送文件到手机和获取手机中的文件 6.获取当前屏幕内元素结构(重点) 7.脚本内启动其他APP ...
- 『与善仁』Appium基础 — 18、元素定位工具(二)
目录 1.Appium Inspector介绍 2.Appium Inspector打开方式 3.Appium Inspector布局介绍 4.Appium Inspector工具的配置 5.Appi ...
- 『与善仁』Appium基础 — 9、补充:C/S架构和B/S架构说明
目录 1.C/S架构和B/S架构概念 2.C/S结构与B/S架构的区别 3.C/S架构和B/S架构优点和缺点 (1)B/S模式的优点和缺点: (2)C/S模式的优点和缺点: 1.C/S架构和B/S架构 ...
- 『与善仁』Appium基础 — 10、Appium基本原理
目录 1.Appium自动化测试架构 2.Appium架构图 3.Session说明 4.Desired Capabilities说明 5.Appium Server说明 6.Appium Clien ...
- 『与善仁』Appium基础 — 12、Appium的安装详解
目录 (一)Appium server安装 方式一:(桌面方式:推荐) 1.Appium Desktop下载 2.Appium Desktop安装 3.Appium Desktop使用 方式二:(No ...
- 『与善仁』Appium基础 — 14、Appium测试环境搭建
目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...
- 『与善仁』Appium基础 — 17、元素定位工具(一)
目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...
- 『与善仁』Appium基础 — 19、元素定位工具(三)
目录 1.Chrome Inspect介绍 2.Chrome Inspect打开方式 3.Chrome Inspect工具的使用 (1)Chrome Inspect工作前提 (2)Chrome Ins ...
随机推荐
- gasshopper之python电池输出dict结构
问题:gh 直接用 panel 是无法直接输出字典结构的 故需要用 zip() 函数将字典的keys() values() 组成一个元组,可以直接输出: 实例: dict = {} for i in ...
- sql server 操作(不定期更新)
要求:基本的语法要清楚. sql server疑难点: 1.Partition by可以理解为 对多行数据分组后排序取每个产品的第一行数据 先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查 ...
- XGBoost原理介绍
XGBoost原理介绍 1. 什么是XGBoost XGBoost是一个开源机器学习项目,实现了GBDT算法,进行了算法和工程上的许多改进,广泛应用在Kaggle竞赛及许多机器学习竞赛中. 说到XGB ...
- deeplearning模型量化实战
deeplearning模型量化实战 MegEngine 提供从训练到部署完整的量化支持,包括量化感知训练以及训练后量化,凭借"训练推理一体"的特性,MegEngine更能保证量化 ...
- MindSpore后端运行类
MindSpore后端运行类 Q:如何在训练过程中监控loss在最低的时候并保存训练参数? A:可以自定义一个Callback.参考ModelCheckpoint的写法,此外再增加判断loss的逻辑: ...
- BEP 7:CUDA外部内存管理插件(下)
BEP 7:CUDA外部内存管理插件(下) Numba依赖 向库中添加EMM插件的实现自然会使Numba成为库的依赖项,而以前可能没有.为了使依赖关系可选,如果需要的话,可以有条件地实例化并注册EMM ...
- java 全端开源 电商系统 springboot uniapp 小程序 前后端分离 高可用
Lilishop B2B2C商城系统 官方公众号 & 开源不易,如有帮助请点Star 所有jar包均可从maven中央仓库下载,无二次封装jar包,全端开源,无后门,无监控. 介绍 官网:ht ...
- 【逆向&渗透实战】Dump内存中的Dex_我是如何脱壳某公司加固过的Apk并利用其API渗透对方数据库
/作者:Kali_MG1937 QQ:3496925334 CNBLOG博客号:ALDYS4/ 某天午睡,朦朦胧胧梦到给学校提供建站模板的公司有个注射点 梦醒后,我凭借着零散的记忆日进了对面的数据库, ...
- 【NX二次开发】指定矢量控件,记住上次选择的方向
block UI控件如果有RetainValue属性,就用这个属性.没有这个属性可以参考下面这种方法.以矢量控件为例: 1.在apply_cb回调中,将控件值保存到文本中 double TopForT ...
- 「10.16晚」序列(....)·购物(性质)·计数题(DP)
A. 序列 考场不认真读题会死..... 读清题就很简单了,分成若干块,然后块内递增,块外递减,同时使最大的块长为$A$ B. 购物 考场思路太局限了,没有发现性质, 考虑将$a_{i}$,排序前缀和 ...