一、环境准备
- 从git上拉取源码到本地:https://github.com/openatx/atxserver2-android-provider.git
- 依赖环境: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
二、设备链接
- 部署服务(MacOS和Windows环境下只能使用源码部署,如下; Linux环境下可以使用docker部署)
a. 打开终端进入到atxsertver2-android-provider的源码目录下
b. 安装相关的依赖npm install # 安装nodejs相关的依赖
pip3 install -r requirements.txt # 安装python3的相关依赖
2.连接手机后,启动服务:
python3 main.py # 使用默认的atxserver2的地址启动
python3 main.py --server localhost:4000 #启动服务,指定atxserver2地址为:localhost:4000
3.服务启动后,如下图
打开http://localhost:4000/可以看到成功连接的设备
ps:provider可以通过adb track-devices
自动发现已经接入的设备,当手机接入到电脑上时,会自动给手机安装minicap
, minitouch
, atx-agent
, app-uiautomator-[test].apk
, whatsinput-apk
三、遇到的坑
- 在 atxserver2-android-provider下安装npm install时,会出现如下的报错:
npm warn atxserver2-android-provider No repository field.
npm warn atxserver2-android-provider No license field.
解决方法:<br />1) 那就增加“repository”字段,在`package.json`中增加`repository`字段, url地址写上改项目的git地址:
"repository": {
"type": "git",
"url": "https://github.com/openatx/atxserver2-android-provider.git"
}
2)将项目声明为私有项目,在package.json中增加 private
字段
"private": true,
参考文章 :https://blog.csdn.net/cnwyt/article/details/85067601
- 连接的MIX2手机,在点击使用的页面,无法连接设备的屏幕。
原因是provider自动安装的minicap没有成功安装,因为手机的系统是MIUI11 9.10.31版本,底层的Android版本是10,minicap暂时不支持Android10以上的系统。但这个屏幕无法连接并不会影响之后的UIAutomator的运行,依然可以通过脚本对设备进行操作。
查看手机是否安装了minicap,使用如下命令可以查看:
adb shell vm size #获取手机的屏幕分辨率
adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x2160@ 1080x2160/0 -t #1080x2160是手机分辨率,根据自己的手机替换