当前位置: 首页 > article >正文

使用 ADB 在某个特定时间点点击 Android 设备上的某个按钮

前提条件

  1. 安装 ADB:确保你已经在计算机上安装了 Android SDK(或单独的 ADB)。并将其添加到系统环境变量中,以便你可以在命令行中运行 adb。

  2. USB调试:确保 Android 设备已启用 USB 调试模式。这可以在设备的“设置” -> “关于手机”中,连续点击“版本号”7次,然后返回“设置” -> “开发者选项”中启用 USB 调试。

  3. 连接设备:通过 USB 数据线将 Android 设备连接到计算机。

流程步骤

  1. 查找设备的连接状态
    你可以通过运行下面的命令来确保连接状态:

    adb devices
    
    

    这将列出连接的设备,如果你的设备出现在列表中,就表示连接成功。

  2. 确定要点击的按钮的坐标
    为了点击按钮,你需要知道该按钮在屏幕上的确切位置(x, y 坐标)。你可以采取以下几种方法获取这些坐标:

    • 使用屏幕截图

      adb shell screencap -p /sdcard/screenshot.png
      adb pull /sdcard/screenshot.png .
      
      

      之后查看截图文件,以找到你想要点击的按钮位置。

    • 使用 UI 自动化工具
      你可以使用 uiautomator 工具来获取界面信息:

      adb shell uiautomator dump /sdcard/window_dump.xml
      adb pull /sdcard/window_dump.xml .
      
      

      然后通过分析 XML 文件找到你所需按钮的坐标。

  3. 编写点击命令
    假设你已经获取到按钮的坐标 (x, y)。接下来编写一个命令在特定时间点击该位置。你可以使用 sleep 命令来设置延迟。

    示例:假设确定按钮坐标是 (500, 800),你希望在10秒后进行点击。

    sleep 10 ; adb shell input tap 500 800
    
    
  4. 整合到一个脚本中
    如果你希望将命令放入一个脚本文件中,可以创建一个 .sh 文件(Linux/Mac OS)或 .bat 文件(Windows)。

    • Linux/MacOS 示例

      创建一个名为 click_button.sh 的文件,内容如下:

      #!/bin/bash
      sleep 10
      adb shell input tap 500 800
      
      

      然后给文件执行权限:

      chmod +x click_button.sh
      
      

      然后运行脚本:

      ./click_button.sh
      
      
    • Windows 示例

      创建一个名为 click_button.bat 的文件,内容如下:

      @echo off
      timeout /t 10
      adb shell input tap 500 800
      
      

      然后双击该文件运行。

运行脚本

确保设备连接正常后,运行你编写的脚本,等待 10 秒钟后,它将自动点击指定的按钮。

注意事项

  • 屏幕旋转:确保设备处于固定的屏幕方向(竖屏或横屏),因为这会影响坐标值。
  • 坐标准确性:不同设备的分辨率不同,确保你在对应的分辨率下获取坐标。
  • 权限设置:某些设备可能在 UI 自动化上有额外的限制,确保你的应用权限设置妥当。

window_dump.xml

当前页面完整的 UI 树结构信息都 dump 出来了,包括 view 的类名、资源 ID 和屏幕位置坐标等


http://www.kler.cn/a/376033.html

相关文章:

  • 63 mysql 的 行锁
  • 江协科技STM32学习- P23 DMA 直接存储器存取
  • python之字符串总结
  • Ethernet 系列(6)-- 基础学习::OSI Model
  • Unity计算二维向量夹角余弦值和正弦值的优化方法参考
  • 安装fpm,解决*.deb=> *.rpm
  • 我的工具列表
  • DCN网络进行新冠肺炎影像分类
  • 浅谈C++深、浅拷贝
  • RPC和API关系
  • 2024三掌柜赠书活动第三十四期:破解深度学习
  • OpenMV的无人驾驶智能小车模拟系统
  • 使用 Q3D 计算并联和串联 RLCG 值
  • 【Python开发】大模型应用开发项目整理
  • 数据库物化视图的工作原理与Java实现
  • TPP-PEG-N3叠氮-聚乙二醇-四苯基吡嗪,功能话聚乙二醇,PEG分子量可定制
  • ms-swift+llamacpp+ollama微调部署MiniCPM-V教程
  • Yocto中MACHINE 和 DISTRO是输入,IMAGE 是他们组合的产物
  • Web3 与人工智能的跨界合作:重塑数字经济的新引擎
  • TikTok账号优化与批量管理:住宅IP与内容策略的全面指南
  • Python中的SQL数据库管理:SQLAlchemy教程
  • 安全成为大模型的核心;大模型安全的途径:大模型对齐
  • FPGA图像处理仿真:生成数据源的方法
  • Diving into the STM32 HAL-----HAL_GPIO
  • vscode 模板代码片段快捷配置
  • Unreal5从入门到精通之Sequencer关卡序列的用法