一、环境准备

  1. 从git上拉取源码到本地:https://github.com/openatx/atxserver2-android-provider.git
  2. 依赖环境:python3.6+,NodeJS 8(NodeJs的版本必须是8,不能高于8也不能低于8)

由于在安装ATX设备管理平台的时候,使用homebrew安装了NodeJS,安装的应该是最新的NodeJS版本,所以这里需要重新安装NodeJS 8:
a. 之前已经安装过node, 先执行:brew unlink node来解绑node
b. 使用 brew search node 查找可用的node版本
c. 安装需要的版本8,brew insatll node@8
d. brew link node@8, 这一步可能会报错, 按照提示执行命令就ok了,或者使用brew link --overwrite --force node@8
e.用 node -v 确认安装的是否是nodejs 8

二、设备链接

  1. 部署服务(MacOS和Windows环境下只能使用源码部署,如下; Linux环境下可以使用docker部署)
    a. 打开终端进入到atxsertver2-android-provider的源码目录下
    b. 安装相关的依赖
    1. npm install # 安装nodejs相关的依赖
    2. pip3 install -r requirements.txt # 安装python3的相关依赖

2.连接手机后,启动服务:

  1. python3 main.py # 使用默认的atxserver2的地址启动
  2. python3 main.py --server localhost:4000 #启动服务,指定atxserver2地址为:localhost:4000

3.服务启动后,如下图
image.png
打开http://localhost:4000/可以看到成功连接的设备
image.png
ps:provider可以通过adb track-devices自动发现已经接入的设备,当手机接入到电脑上时,会自动给手机安装minicap, minitouch, atx-agent, app-uiautomator-[test].apk, whatsinput-apk

三、遇到的坑

  1. 在 atxserver2-android-provider下安装npm install时,会出现如下的报错:
  1. npm warn atxserver2-android-provider No repository field.
  2. npm warn atxserver2-android-provider No license field.
  1. 解决方法:<br />1 那就增加“repository”字段,在`package.json`中增加`repository`字段, url地址写上改项目的git地址:
  1. "repository": {
  2. "type": "git",
  3. "url": "https://github.com/openatx/atxserver2-android-provider.git"
  4. }

2)将项目声明为私有项目,在package.json中增加 private 字段

  1. "private": true,

参考文章 :https://blog.csdn.net/cnwyt/article/details/85067601

  1. 连接的MIX2手机,在点击使用的页面,无法连接设备的屏幕。

原因是provider自动安装的minicap没有成功安装,因为手机的系统是MIUI11 9.10.31版本,底层的Android版本是10,minicap暂时不支持Android10以上的系统。但这个屏幕无法连接并不会影响之后的UIAutomator的运行,依然可以通过脚本对设备进行操作。
查看手机是否安装了minicap,使用如下命令可以查看:

  1. adb shell vm size #获取手机的屏幕分辨率
  2. adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x2160@ 1080x2160/0 -t #1080x2160是手机分辨率,根据自己的手机替换