• Appium自动化测试基础 — ADB常用命令(一)


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

    1、启动和关闭adb服务

    在某些情况下,可能需要终止然后再启动服务端进程,例如ADB不响应命令的时候,可以通过重启解决问题。
    开启命令行终端执行命令:
    (1)启动adb服务,adb命令: adb start-server
    (2)关闭adb服务,adb命令: adb kill-server
    演示:

    • 启动adb服务
    1. C:\Users\L>adb start-server
    2. * daemon not running; starting now at tcp:5037
    3. * daemon started successfully
    4. C:\Users\L>

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

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

    2、查看adb版本

    adb命令:adb version

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

    3、指定adb server的网络端口

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

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

    提示:

    • netstat -ano查询进程ID。
    • taskkill /f /t /im 进程名杀掉进程。
      如:taskkill /f /t /im nginx.exe


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

    adb命令:adb devices
    前提:Android模拟器已开启。
    演示:
    (1)直接执行adb devices命令

    1. C:\Users\L>adb devices
    2. * daemon not running; starting now at tcp:5037
    3. * daemon started successfully
    4. List of devices attached
    5. C:\Users\L>

    从上面可以看到,如果我们没有启动adb服务,且直接执行adb devices命令,会先自动帮我们开启adb服务,在执行adb devices命令,结果没有查询到已链接的模拟器。
    (2)使用adb服务链接Android模拟器
    执行命令adb connect 127.0.0.1:21503(注:不同的模拟器的端口号不同)。

    1. C:\Users\L> adb connect 127.0.0.1:21503
    2. connected to 127.0.0.1:21503
    3. C:\Users\L>

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

    1. C:\Users\L>adb devices
    2. List of devices attached
    3. 127.0.0.1:21503 device
    4. 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
    演示:

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

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

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

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

    1. $ adb devices
    2. List of devices attached
    3. cf264b8f device
    4. emulator-5554 device
    5. 10.129.164.6:5555 device

    输出里的 cf264b8femulator-5554 和 10.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
    遇到多设备/模拟器的情况均使用这几个参数为命令指定目标设备

    重点:配套学习资料和视频教学

    那么在这里我也精心准备了上述大纲的详细资料在下方链接如下

  • 相关阅读:
    【无标题】
    软考初级程序员上午单选题(20)
    史上最全,最详细SQL基础
    【力扣每日一题】88. 合并两个有序数组 &双指针 & 辅助数组 & 8.13打卡
    为什么 NGINX 的 reload 不是热加载?
    快手直播弹幕websocket protobuf序列化与反序列化
    Warning: `ReactDOMTestUtils.act` is deprecated in favor of `React.act`.
    聚类性能度量
    rust OJ实战
    Kakfa高效读写数据
  • 原文地址:https://blog.csdn.net/m0_59868866/article/details/125482059