go获取usb设备_ATX atxserver2 手机设备管理平台 重装上阵

atxserver2是用Python重写的服务端和客户端,支持USB设备接入和iOS设备,提供更全面的网页控制功能。基于REST API接口,具有更强的权限控制,确保设备安全。项目已提供Docker部署方式,简化安装流程。
摘要由CSDN通过智能技术生成

前言

在一年前写过一篇安卓设备集群管理 atx-server的文章,主推设备的无线接入,服务端用的是我最喜欢的Go语言。承蒙大家厚爱,文章不仅加精,而且还有1万6千多的阅读量,很多人将这套工具部署到了公司内部,给ATX的QQ群带了源源不断的人群。我作为开发者,也在内部部署了一套,在陆陆续续的使用中,体会到了它的优点,也渐渐的发现了它的不足。

优点主要体现在设备接入方便,手机通过数据线完成初始化后,就可以拿在手里到处跑了。平台可以直接连接手机运行自动化脚本,下载日志,甚至远程操作。
缺点则主要体现在稳定性上,数据线的速度传输速度显然要比WIFI连接快的多,而且还不用担心手机没电的问题。

重构计划

atx-server在使用的过程中不断的优化,当有一天最终优化不下去了。于是开始了atxserver2的筹备计划。这个项目2019/01/15号开始开发的,目前开发了大概3个月了。已经比较稳定了。以前的服务端是用的Go+RethinkDB,现在则是用的Python3+NodeJS+RethinkDB。

架构图

thanks to 坚果云绘图工具

11efb04b396be14a84be8c5391b84f0b.png

主要希望提供的Features(不过有些完成了,有些没完成)

  • [x] 使用Python重写服务端和客户端(Go语言写服务端速度有点慢,没有Python弄的快)
  • [x] 网页控制手机提供更全的功能(原有的atx-server功能非常的少,只有操作手机和一个手机shell终端)
  • [x] 支持USB设备的接入 (主要是为了提高稳定性)
  • [x] 支持iOS设备 (这个功能的呼声一直很高)
  • [x] 全面的REST API文档。(原来可能有,但是不全)
  • [ ] 支持WIFI设备的接入(这个暂时还没搞完,不过很快了)
  • [ ] 支持跨网段的设备接入 (假如有这个功能的话,感觉家里闲置的手机也能派上用场了)

有个用户迫切需要WIFI设备的接入功能,我问他为什么。他的理由真的让人无法反驳,他说:“我们的电脑没有USB接口”。

如果还想要其他的Feature,可以留言,或提Issue到这里 https://github.com/openatx/atxserver2/issues/1 虽然我不一定会有时间做

网页功能预览

215d75e75d9ad96d77bd62cf280c9a63.png

c861bb65ad9cd67160a7aa0cca96ebba.png

远程控制原理简介

Android的远程控制主要还是基于 minicap+minitouch+atx-agent (不过感觉最近openstf的作者们,有点太忙了,没空管这个项目。之前adbkit有个bug,我提了一个pr,很久都没有收到回复。)我估计下个版本我就不用minicap+minitouch了。有个 scrcpy看起来不错,或许以后可以合并进来。

iOS的远程控制主要还是基于appium fork的WebDriverAgent。因为appium在WDA中增加了MJPEG Server,所以让远程投屏成为了可能。不过只支持iOS 12.0以上。

REST API接口

这个版本相比之前的atx-agent,有着更全面的权限控制。一旦你释放了设备,安卓或苹果的远程连接地址就会立刻换掉,防止平台上没有占用设备,但是却可能控制设备的事情发生。

See also: https://github.com/openatx/atxserver2/blob/master/API.md

项目地址和部署方法

https://github.com/openatx/atxserver2

目前这个版本提供了Docker的部署方式,可谓是简单快捷。一句docker-compose up命令就能将服务端启动起来。而provider的部署,用docker run ...就可以运行起来。手机连接上去之后,就会自动安装需要的apk和二进制文件。如果需要支持iOS,可能步骤要多点,不要有很详细的步骤供参考。

因为大部分是Python写的,我想这个版本贡献代码的人应该会多起来吧。

FAQ

为什么还在用RethinkDB?

总有人问我RethinkDB不是停止维护了吗?为什么要选这个数据库。因为这玩意实在太好用了,功能多,内存占用少,支持各种各样的平台部署。见过好的之后,你就再也不想用以前的。实际上这个数据库已经转交Linux基金会了,Github上这个项目还是有断断续续的提交,且它运行的一直还都很稳定。所以就先这样吧。

提示错误:zipfile.BadZipFile: File is not a zip file

因为用到了git-lfs,用来往项目中塞二进制文件。没有安装它,就不会下载哪些必要的二进制文件。修复方法:根据https://git-lfs.github.com/的安装提示完成git-lfs的安装,之后执行git lfs install && git lfs pull,然后重新运行即可。

其他问题欢迎留言

作者: codeskyblue

原文链接:https://testerhome.com/topics/19002

转载文章时务必注明原作者及原始链接,并注明「发表于 TesterHome 」,并不得对作品进行修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值