在上一篇文章中说明了ADB命令的使用方式:

  1. 使用ADB命令的前提是保证手机或者模拟器和电脑是连接状态。
  2. 使用adb connect 127.0.0.1:+端口号命令,进行链接。

本篇文章详细说明一下常用ADB命令的操作。

1、启动和关闭ADB服务

在某些情况下,可能需要终止然后再启动服务端进程,例如ADB不响应命令的时候,可以通过重启解决问题。

开启命令行终端执行命令:

  1. 启动ADB服务,ADB命令: adb start-server
  2. 关闭ADB服务,ADB命令: adb kill-server

演示:

1)启动ADB服务

C:\Users\L>adb start-server
* daemon not running; starting now at tcp:5037
* daemon started successfully C:\Users\L>

提示:守护进程没有开启,现在通过5037端口开启守护进程服务。

注意:

  • ADB命令默认绑定端口为5037 ,若端口被别的应用绑定则无法启动ADB服务。
  • 一般无需手动执行此命令,在运行ADB命令时若发现adb server没有启动会自动调起。

2)关闭ADB服务

关闭ADB服务没有任何提示。

2、查看ADB版本

ADB命令:adb version

C:\Users\L>adb version
Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as F:\***\android-sdk-windows\platform-tools\adb.exe C:\Users\L>

3、指定adb server的网络端口

ADB命令:adb -P <port> start-server(临时换一个端口号开启ADB服务)

默认端口为 5037。

C:\Users\L>adb -P 5039 start-server
* daemon not running; starting now at tcp:5039
* daemon started successfully C:\Users\L>

提示:

  • netstat -ano查询进程ID。
  • taskkill /f /t /im 进程名杀掉进程。

    如:taskkill /f /t /im nginx.exe

4、查询已连接设备/模拟器

ADB命令:adb devices

前提:Android模拟器已开启。

演示:

(1)直接执行adb devices命令

C:\Users\L>adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached C:\Users\L>

从上面可以看到,如果我们没有启动ADB服务,且直接执行adb devices命令,会先自动帮我们开启ADB服务,在执行adb devices命令,结果没有查询到已链接的模拟器。

(2)使用ADB服务链接Android模拟器

执行命令adb connect 127.0.0.1:21503(注:不同的模拟器的端口号不同)。

C:\Users\L> adb connect 127.0.0.1:21503
connected to 127.0.0.1:21503 C:\Users\L>

(3)再次执行adb devices命令,查询已连接设备

C:\Users\L>adb devices
List of devices attached
127.0.0.1:21503 device C:\Users\L>

我们就可以看到ADB服务已经链接的设备了

说明:

输出格式为 [serialNumber] [state]

serialNumber即我们常说的SN码,state有如下几种:

  • offline:表示设备未连接成功或无响应。
  • device:设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到ADB,但启动完毕后系统才处于可操作状态。
  • no device:没有设备/模拟器连接。

常见异常输出

  1. 没有设备/模拟器连接成功。
    List of devices attached
  2. 设备/模拟器未连接到 adb 或无响应。
    List of devices attached
    cf264b8f offline

5、获取安卓系统版本

ADB命令:adb shell getprop ro.build.version.release

演示:

C:\Users\L>adb shell getprop ro.build.version.release
7.1.2 C:\Users\L>

6、为命令指定目标设备

如果有多个设备/模拟器连接,则需要为命令指定目标设备。

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

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

$ adb devices

List of devices attached
cf264b8f device
emulator-5554 device
10.129.164.6:5555 device

输出里的 cf264b8femulator-555410.129.164.6:5555 即为serialNumber

比如这时想指定 cf264b8f 这个设备来运行ADB命令获取屏幕分辨率:

adb -s cf264b8f shell wm size

又如想给 10.129.164.6:5555 这个设备安装应用(这种形式的 serialNumber 格式为 <IP>:<Port>,一般为无线连接的设备或 Genymotion 等第三方 Android 模拟器):

adb -s 10.129.164.6:5555 install test.apk

遇到多设备/模拟器的情况均使用这几个参数为命令指定目标设备

7、发送文件到手机

ADB命令:adb push 电脑端文件路径\需要发送的文件(全名) /手机端存储的路径

提示

  • Android手机存储卡的根目录都是sdcard目录。(固定死的)
  • 注意目录中斜杠的方向。

示例

将桌面的test.txt文件发送到手机sdcard目录下。

C:\Users\L>adb push C:\Users\L\Desktop\test.txt /sdcard
C:\Users\L\Desktop\test.txt: 1 file pushed, 0 skipped. 0.0 MB/s (36 bytes in 0.003s) C:\Users\L>

提示:我们可以把文件直接拖拽到命令行终端中,该文件的路径和文件名会自动生成。

我们再到Android模拟器中的文件管理器查看test.txt文件是否接收到。

打开文件的内容也是一样的。

8、从手机拉取文件

ADB命令:adb pull 手机端的路径/拉取文件名(全名) \电脑端存储文件路径

示例:

将手机/sdcard目录中的test.txt文件,发送到电脑桌面

C:\Users\L>adb pull /sdcard/test.txt C:\Users\L\Desktop
/sdcard/test.txt: 1 file pulled, 0 skipped. 0.0 MB/s (36 bytes in 0.002s) C:\Users\L>

桌面上会接收到test.txt文件。

注意:练习的时候,文件名尽量不要使用中文,可能测试效果不好。

参考:https://github.com/mzlogin/awesome-adb

『与善仁』Appium基础 — 4、常用ADB命令(一)的更多相关文章

  1. 『与善仁』Appium基础 — 3、ADB命令介绍

    目录 1.ADB命令简介 2.ADB命令运行原理 3.通过ADB命令连接安卓模拟器 (1)安装安卓模拟器 (2)ADB命令连接安卓模拟器 (3)常用Android模拟器端口号 1.ADB命令简介 AD ...

  2. 『与善仁』Appium基础 — 7、ADB Shell命令的使用

    目录 1.查看进程 2.查看实时资源占用情况 3.查看进程 UID 4.其它ADB Shell命令说明 Android系统是基于 Linux 内核的,也就是说Android系统的底层是Linux系统. ...

  3. 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍

    目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...

  4. 『与善仁』Appium基础 — 12、Appium的安装详解

    目录 (一)Appium server安装 方式一:(桌面方式:推荐) 1.Appium Desktop下载 2.Appium Desktop安装 3.Appium Desktop使用 方式二:(No ...

  5. 『与善仁』Appium基础 — 15、使用Appium的第一个Demo

    我们使用Python语言作为测试脚本的编写语言. 执行脚本前提: Android模拟器或者手机是开机状态. 使用确保电脑和Android设备进行了链接. 也就是使用ADB命令adb connect链接 ...

  6. 『与善仁』Appium基础 — 16、APPium基础操作API

    目录 1.前置代码 2.安装和卸载APP 3.判断APP是否已安装 4.关闭APP软件和关闭驱动对象 5.发送文件到手机和获取手机中的文件 6.获取当前屏幕内元素结构(重点) 7.脚本内启动其他APP ...

  7. 『与善仁』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架构 ...

  8. 『与善仁』Appium基础 — 10、Appium基本原理

    目录 1.Appium自动化测试架构 2.Appium架构图 3.Session说明 4.Desired Capabilities说明 5.Appium Server说明 6.Appium Clien ...

  9. 『与善仁』Appium基础 — 14、Appium测试环境搭建

    目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...

  10. 『与善仁』Appium基础 — 17、元素定位工具(一)

    目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...

随机推荐

  1. CVPR 2020目标跟踪多篇开源论文(上)

    CVPR 2020目标跟踪多篇开源论文(上) 1. SiamBAN:面向目标跟踪的Siamese Box自适应网络 作者团队:华侨大学&中科院&哈工大&鹏城实验室&厦门 ...

  2. H.265 HD 和H.265 4K Video Encoder IP Core

    H.265 HD 和H.265 4K Video Encoder IP Core H.265 HD Video Encoder IP Core(H.265 HD Video/Audio Encoder ...

  3. FFmpeg扩展开发

    FFmpeg扩展开发 对FFmpeg RTMP/FLV部分做了扩展,用于支持H.265. 针对<video_file_format_spec_v10_1> VIDEODATA部分扩展如下: ...

  4. Charles下载及安装破解-自己编辑

    Charles下载地址 地址:https://www.charlesproxy.com/latest-release/download.do 2. Charles破解 破解地址:https://www ...

  5. 错误档案2:MySQL8.0连接C3P0的问题

    >>>跳过BB,空降正文<<< 目录 前言 问题出现 解决方法 结论 前言 大家好呀,我是 白墨,一个热爱学习与划水的矛盾体. 前两天在使用C3P0连接池时遇到问题 ...

  6. 28.qt quick-ListView高仿微信好友列表和聊天列表

    1.视图模型介绍  在Qml中.常见的View视图有: ListView: 列表视图,视图中数据来自ListModel.XmlListModel或c++中继承自QAbstractItemModel或Q ...

  7. selenium css定位元素

    CSS 选择器: 常见符号: #表示 id选择器 .表示 class选择器 >表示子元素,层级 一个空格也表示子元素,但是是所有的后代子元素,相当于 xpath 中的相对路径 一.css:属性定 ...

  8. 数位dp从会打模板到不会打模板

    打了几个数位$dp$,发现自己除了会打模板之外没有任何长进,遇到非模板题依然什么都不会 那么接下来这篇文章将介绍如何打模板(滑稽) 假设我们要处理$l----r$ 采用记忆化搜索的方式,枚举$< ...

  9. LCD1602液晶显示模块的单片机驱动深入详解之软件篇(AVR)

    LCD1602液晶显示模块的驱动虽然比七段数码管之类的显示要复杂一些,但实际上也并不是很难,最主要的还是初始化,为什么这么说呢?我们在调试一块新液晶屏的时候,都会先初始化看看有没有光标在闪,没有光标前 ...

  10. 痞子衡嵌入式:超级下载算法RT-UFL v1.0发布,附J-Link下安装教程

    痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> 历时 8 个月终于迎来了 v1.0 版发布,因为是第一个正式版,为了保证质 ...