ADB 与 Anaconda 使用
XiaoMa 博士生

概念扫盲

ADB

ADB(Android Debug Bridge)是 Android 开发工具包(SDK)中的一个工具,它提供了与 Android 设备通信的桥梁,可以在计算机和 Android 设备之间建立连接,并以命令行的方式执行一些操作,例如安装应用程序、发送文本消息、复制文件等。在使用 adb 前,需要确保已经将 Android SDK 安装在计算机上。

Anoconda

Anaconda 是一个 Python 的发行版,它包含了 Python 解释器、一堆常用的 Python 库以及一个可视化的集成开发环境(IDE)。Anaconda 中包含的 Python 库包括了科学计算、数据分析、机器学习等领域常用的各种库,如NumPy、Pandas、Matplotlib、SciPy、Scikit-learn 等等,这些库的版本和依赖都已经被管理好了,用户可以非常方便地进行安装、更新、切换等操作。除此之外,Anaconda 还提供了 conda 这一包管理工具,通过它,用户可以非常方便地管理安装在自己电脑上的 Python 包,这也是 Anaconda 相较于 Python 官方发行版的一大优势。总之,Anaconda 是一个非常强大、易于使用的 Python 发行版,适用于科学计算、数据分析、机器学习等领域的从业者和爱好者。

驱动(软件/环境)安装配置

本次测试使用平台:Windows 11(22H2) + Redmi Note 8(MIUI 12.0.3)。

ADB

  1. 下载 ADB 驱动,下面两个地址的 Windows 包都是一样的,第二个日期更新一些。我使用了第二个。

  2. 安装 Python。由于之前已经安装过,所以这一步略过。

  3. 配置环境变量。将 adb 的安装路径保存到 PATH 变量中,确保 adb 命令可以被识别到。

    • Win + s 搜索【控制面板】→【系统】→【高级系统设置】→【环境变量】
    • 在【环境变量】窗口找到【系统变量】下的【path】变量→【编辑】→【新建】
    • 输入 adb 的安装路径:在资源管理器的地址栏复制该路径,粘贴到【编辑环境变量】窗口。
    • 依次点【确定】,关闭所有窗口。
    • win + R 搜索 cmd,打开命令行窗口,输入 adb,返回 Android Debug Bridge version 1.0.31 …… 表示已成功安装 adb。输入 adb devices,返回 List of devices attached,下面显示设备序列号号,表示已连接,否则为空。

Anaconda

考虑到生产环境的规范性,实验与项目之间不受干扰,请尽量使用新的虚拟环境来完成实验。

Windows 开辟新的虚拟环境操作步骤:

  1. 下载 Anaconda:Anaconda | The World’s Most Popular Data Science Platform

  2. 安装 Anaconda:下图为勾选配置的选项,第一项意思是不推荐勾选,将 Anaconda 添加到 PATH 环境变量中会让计算机上的其他程序(如 Python Tools for Visual Studio、PyCharm、Wing IDE、PyDev 和 MSI 二进制软件包)自动将 Anaconda 检测为系统上的主要 Python 3.9 版本,可能导致一些问题,需要卸载重装 Anaconda 才能解决。第二项的意思是允许其他程序(同上)自动检测 Anaconda 作为系统上的主要 Python 3.9。(安装时我没有细读,全部勾选了)

    image-20230312102038124
  3. 创建虚拟环境

    • 第一种方式:安装好后,在应用程序中找到 Anaconda 打开,找到【Environment】进行创建。

    • 第二种方式:使用命令行创建虚拟环境,需以管理员身份运行 cmd(win + s 搜索【命令提示符或 cmd】,右键【以管理员身份运行】(今天测试,不用管理员身份也可以)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    conda info --envs #查看所有虚拟环境
    conda create -n wechat_env python=3 #创建名为 wechat_env 的虚拟环境,且使用 Python3
    activate wechat_env #Windows 下激活虚拟环境
    conda install package_name #安装所需要的包,如 matplotlib 等

    #进入虚拟环境会有前置符号表示如下
    (wechat_env) 路径名

    conda deactivate #退出虚拟环境,之前的 deactivate wechat_env 已经不适用了
    conda remove -n wechat_env --all #需要先退出,才能删除虚拟环境
  4. 完全卸载 Anaconda:【控制面板】→【所有控制面板项】→【程序和功能】→【Anaconda】→右键【卸载】

Android 手机配置

Redmi note 8(MIUI 12.0.3)操作步骤:

  1. 【设置】→【我的设备】→【全部参数】,找到【MIUI 版本】,连续点击多次,进入【开发者模式】
  2. 【设置】→【更多设置】→【开发者选项】,打开【USB 调试】、【USB 调试(安全设置)】、USB 设置为 MTP 模式。
  3. 使用数据线连接电脑与手机。打开 cmd,执行 adb devices,返回设备 ID 表示成功连接。

ADB 测试

  1. 连接手机与电脑,选择 MTP 模式。(MIUI 自动弹出)

  2. 运行 cmd。输入 adb devices。返回设备 ID,测试成功。

  3. 在 cmd 中分别输入以下命令:

    1
    2
    3
    4
    5
    6
    adb shell screencap -p /sdcard/test.png #截图
    adb pull /sdcard/test.png . #将截图上传到电脑(目录为当前命令行显示的目录)

    ---
    #返回结果显示
    1120 KB/s (259599 bytes in 0.226s)

    在电脑当前所在目录下看到名为 test.png 的截图,测试成功。

  4. 打开抖音,输入以下命令:

    1
    2
    adb shell input swipe 540 1265 540 965 200
    #这个命令在Android设备的屏幕上执行了一个从坐标(540,1265)到坐标(540,965)的滑动手势,耗时200毫秒。

    抖音切换视频,测试成功。

  5. 监听设备输入事件,并输出到命令行窗口:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    adb shell #进入设备的 shell 环境
    getevent -l #开始监听。触摸设备屏幕,命令行窗口会输出一些信息,包括触摸事件的坐标(16 进制)

    ---
    #输出结果
    dev/input/event2: EV_ABS ABS_MT_TRACKING_ID 00008ea1
    /dev/input/event2: EV_ABS ABS_MT_PRESSURE 0000002f
    /dev/input/event2: EV_ABS ABS_MT_TOUCH_MAJOR 00000003
    /dev/input/event2: EV_ABS ABS_MT_POSITION_X 000003ec
    /dev/input/event2: EV_ABS ABS_MT_POSITION_Y 00000533
    /dev/input/event2: EV_KEY BTN_TOUCH DOWN
    /dev/input/event2: EV_SYN SYN_REPORT 00000000
    /dev/input/event2: EV_ABS ABS_MT_PRESSURE 0000002e
    /dev/input/event2: EV_SYN SYN_REPORT 00000000
    /dev/input/event2: EV_ABS ABS_MT_TRACKING_ID ffffffff
    /dev/input/event2: EV_KEY BTN_TOUCH UP
    /dev/input/event2: EV_SYN SYN_REPORT 00000000
  6. 其他命令

    1
    2
    3
    adb shell wm size #宽度和高度
    adb shell wm density #手机屏幕密度
    adb shell input tap x y #根据(x, y)坐标点按屏幕

经过测试,在 Redmi Note 8 1080x2340 的屏幕上,抖音 APP 点赞按钮的坐标是(1004, 1331),关注按钮的坐标是(933, 1100)。

参考

  1. Android 和 iOS 操作步骤 · wangshub/wechat_jump_game Wiki (github.com)
  2. 小米(Mi) 红米(Redmi)Note 8小米(Mi) 红米(Redmi)Note 8 如何打开“开发者选项”和“USB调试”图文教程刷机解锁 (onfix.cn)