Mac电脑下通过 ada + atx-agent 连接安卓手机流程

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: Mac电脑下通过 ada + atx-agent 连接安卓手机流程

前言


本文介绍下,mac 电脑连接安卓手机的流程,为 python 自动化工具做准备。

前置知识:

homebrew 安装 2022 我用 MacBook Pro 整一年 【感想 与 踩坑指南】

python 环境安装:Python 入门系列文章 - 环境搭建


ADB(安卓调试桥)


ADB是Android Debug Bridge的缩写,是一个命令行工具,允许开发者与Android设备或模拟器进行通信。ADB是Android SDK(软件开发工具包)的一部分,用于各种任务,例如安装和调试应用程序,在计算机和Android设备之间传输文件以及访问设备的shell以运行命令。

一些常见的ADB命令包括:

  • adb devices:列出所有连接的Android设备或模拟器。
  • adb install [apk_file]:在设备上安装APK(Android Package)文件。
  • adb logcat:实时显示设备的系统日志。
  • adb shell:在设备上打开shell,允许您直接运行命令。
  • adb push [local_file] [remote_path]:将文件从计算机复制到设备。
  • adb pull [remote_file] [local_path]:将文件从设备复制到计算机。

请注意,要使用 ADB,需要在计算机上安装 Android SDK 并在 Android 设备上启用USB调试。 官方文档

mac 电脑建议使用 homebrew 安装 SDK:


brew install android-platform-tools



adb kill-server 
adb devices
// daemon not running; starting now at tcp:5037
// daemon started successfully


devices 指令执行后发现并没有出现设备列表,这是因为我们没有打开手机的开发者选项,所以adb 无法获取到设备信息。


启用开发者选项


安卓手机连接电脑,需要先开启手机的 usb 调试功能,以 小米手机为例:


打开设置
=> 我的设备
=> 全部参数
=> MIUI版本(连续点击触发开发者模式),然后回到设置
=> 更多设置
=> 开发者选项
=> usb 调试
=> usb 安装(允许通过usb安装应用)
=> usb 调试(安全设置)(允许通过 usb 调试修改权限或模拟点击)


设置完成后,先 adb kill-server, 然后重新 adb devices 执行后发现,出现了


// daemon not running; starting now at tcp:5037
// daemon started successfully
// List of devices attached
// FYHU89PRAMHYMZJZ device


FYHU89PRAMHYMZJZ 就是当前设备的编号,需要记录下来,出现这个就说明连接成功了,后面 python 控制手机的一系列操作都需要用到。


atx-agent


atx-agent是一个用于自动化测试和控制Android设备的开源工具。它基于Python编写,可以在Windows、Linux和macOS等多个操作系统上运行。

atx-agent 提供了许多功能,包括:

  • 设备连接管理:atx-agent 可以自动连接Android设备,并支持多台设备同时连接。
  • 屏幕截图和录制:atx-agent 可以捕获设备的屏幕截图和录制视频。
  • UI自动化测试:atx-agent 可以使用UI Automator和Appium等工具进行UI自动化测试。
  • 执行ADB命令:atx-agent 可以执行常见的ADB命令,如安装应用程序、启动Activity等。
  • 远程控制:atx-agent 可以通过网络进行远程控制,包括启动应用程序、输入文本、滑动屏幕等。

atx-agent 的优点是易于使用,具有灵活性和可扩展性。它还提供了完整的 Python API,可以方便地集成到现有的自动化测试框架中。

官方介绍了它的设计初衷:


这个项目的主要目的是为了屏蔽不同安卓机器的差异,然后开放出统一的HTTP接口供 openatx/uiautomator2使用。项目最终会发布成一个二进制程序,运行在Android系统的后台。 这个项目是如何屏蔽不同机器的差异的呢?举个例子来说,截图这个操作,大概需要3次判断才行。

  1. 先判断minicap是否安装可用,然后minicap截图。毕竟minicap截图速度最快
  2. 使用uiautomator2提供的接口截图。(模拟器除外)
  3. 使用screencap截图,然后根据屏幕的旋转调整旋转方向。(一般只有模拟器用这种方式截图)

正是Android手机不同的表现形式,才导致了需要这么多的判断。而atx-agent就是为了将这些操作帮你处理了。然后提供统一的HTTP接口(GET /screenshot)供你使用。 更多


一键安装


python -m uiautomator2 init


手动安装


官方 下载二进制包,解压后看到有 atx-agent 文件,然后在此目录打开终端,执行下面指令:

(建议下载 linux_armv7.tar.gz 结尾的,因为目前的手机以 linux-arm 架构居多);


1687783972297.png


$ adb push atx-agent /data/local/tmp
$ adb shell chmod 755 /data/local/tmp/atx-agent
# launch atx-agent in daemon mode
$ adb shell /data/local/tmp/atx-agent server -d
# stop already running atx-agent and start daemon
$ adb shell /data/local/tmp/atx-agent server -d --stop


安装过程中可能会有几次弹窗授权,点允许,完成后,ATX 应用就安装到当前设备了。


1687783965001.png


总结


其实也可以用安卓模拟器来操作,不过我 m1 的电脑暂时没找到合适的模拟器;

python + 安卓手机,很适合做一些自动化工具,后续会更新相关文章,感兴趣的欢迎关注。

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
3月前
|
Android开发
HBuilder X连接雷电模拟器(手机模拟器)
HBuilder X连接雷电模拟器(手机模拟器)
HBuilder X连接雷电模拟器(手机模拟器)
|
2月前
|
传感器 数据采集 移动开发
基于STM32的智能手环wifi连接手机APP(下)
基于STM32的智能手环wifi连接手机APP(下)
81 0
|
12天前
|
Android开发 数据安全/隐私保护 虚拟化
安卓手机远程连接登录Windows服务器教程
安卓手机远程连接登录Windows服务器教程
41 4
|
1月前
|
安全 搜索推荐 Android开发
Android vs. iOS:解锁智能手机操作系统的奥秘####
【10月更文挑战第21天】 在当今这个数字化时代,智能手机已成为我们生活中不可或缺的伙伴。本文旨在深入浅出地探讨两大主流操作系统——Android与iOS的核心差异、优势及未来趋势,帮助读者更好地理解这两个平台背后的技术哲学和用户体验设计。通过对比分析,揭示它们如何塑造了我们的数字生活方式,并展望未来可能的发展路径。无论您是技术爱好者还是普通用户,这篇文章都将带您走进一个充满创新与可能性的移动世界。 ####
54 3
|
2月前
|
Ubuntu Linux Android开发
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
本文介绍了如何在Android设备上安装Termux和AnLinux,并通过这些工具运行Ubuntu系统和桌面环境。
144 2
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
|
2月前
|
Web App开发 Android开发
利用firefox调试安卓手机端web
该教程详细介绍如何通过Firefox浏览器实现手机与电脑的远程调试。手机端需安装最新版Firefox,并按指定步骤设置完成;电脑端则需安装15版及以上Firefox。设置完成后,通过工具栏中的“远程调试”选项,输入手机IP地址即可连接。连接确认后,即可使用电脑端Firefox调试器调试手机上的Web信息。注意,调试前手机需提前打开目标网页。
81 2
|
2月前
|
Android开发 iOS开发 UED
安卓与iOS的较量:谁才是智能手机市场的王者?
本文将深入探讨安卓和iOS两大智能手机操作系统之间的竞争关系,分析它们各自的优势和劣势。通过对比两者在市场份额、用户体验、应用生态等方面的表现,我们将揭示出谁才是真正的市场领导者。无论你是安卓粉丝还是iOS忠实用户,这篇文章都将为你提供一些有趣的观点和见解。
|
2月前
|
人工智能 自然语言处理 机器人
“今日热点:AI像人类一样使用手机和电脑”,魔搭社区的开源项目已先行一步
今天,Claude发布了Computer Use的新功能,可以让AI像人一样使用电脑!
|
2月前
|
传感器 存储 编解码
基于STM32的智能手环wifi连接手机APP(上)
基于STM32的智能手环wifi连接手机APP(上)
64 0
|
2月前
|
Android开发 Swift iOS开发
python 基于电脑蓝牙连接获取手机的实时数据
python 基于电脑蓝牙连接获取手机的实时数据
64 0