基于STF/ATXServer2 移动设备管理平台的搭建( 二 )

  • 通过docker images查看镜像文件是否拉取成功
(3) 启动容器
  • 先启动一个数据库
docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090 
  • 再启动adb service
docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest
  • 最后启动stf
docker run -d --name stf --net host openstf/stf stf local --public-ip 宿主机IP地址一定要注意启动顺序 , stf 依赖 rethinkdb , 所以要先启动 rethinkdb , 启动完成后使用: docker ps -a 查看是否启动成功 , 顺便获取stf的container ID 。
基于STF/ATXServer2 移动设备管理平台的搭建

文章插图
 
(4) 启动STF程序
  • 首先进入stf镜像目录
docker exec -it stf的containerID /bin/sh
  • 启动stf命令
stf local --public-ip 宿主机IP地址 --allow-remote  启动之后 , 局域网浏览器输入 http://宿主机IP地址:7100 可以打开STF登录界面 , 随意输入帐号邮箱后登录 , 不过目前还没有设备 。
基于STF/ATXServer2 移动设备管理平台的搭建

文章插图
 
(5) 连接设备
由于是在Centos虚拟环境搭建的平台 , 不能进行设备直连 , 故在局域网windows电脑连接设备进行远程连接 , 在未安装STF 的电脑上暴露adb端口(搭建SDK环境) , 建议采用默认端口:5037;
指定端口号与服务器进行通讯:
adb -a -P 5037 fork-server server如果出现以下错误:
基于STF/ATXServer2 移动设备管理平台的搭建

文章插图
 
在任务管理器中关掉 adb.exe , 或使用命令 adb kill-server 关掉adb程序 , 重新运行上述命令 。若还是执行失败 , 建议换成低版本adb(1.0.32版本)再试试 。
直到执行命令出现OK 。
基于STF/ATXServer2 移动设备管理平台的搭建

文章插图
 
(6)切换到Centos环境连接windows下移动设备
在启动STF的命令行输入:
stf provider --name localhost.localdomain --min-port 7400 --max-port 7700 --connect-sub tcp://127.0.0.1:7114 --connect-push tcp://127.0.0.1:7116 --group-timeout 900 --public-ip 宿主机IP地址 --storage-url http://localhost:7100/ --adb-host 局域网windowsIP地址 --adb-port 5037 --vnc-initial-size 600x800 --mute-master never --allow-remote
基于STF/ATXServer2 移动设备管理平台的搭建

文章插图
 
连接成功后显示移动设备信息:
基于STF/ATXServer2 移动设备管理平台的搭建

文章插图
 
STF设备列表界面:
基于STF/ATXServer2 移动设备管理平台的搭建

文章插图
 
STF设备操作界面:
基于STF/ATXServer2 移动设备管理平台的搭建

文章插图
 
1.4 过程中可能用到的一些命令docker
docker start 容器名  #启动某个容器docker stop 容器名   #停止某个容器docker rm 容器名     #删除某个容器linux
netstat -anp |grep 端口号   #查看端口占用kill -9 对应端口PID        #删除进程
基于STF/ATXServer2 移动设备管理平台的搭建

文章插图
 
2. 基于ATXServer2搭建移动设备管理平台2.1 ATXServer2基本介绍ATXServer2其实是在STF基础上 , 使用Python3+NodeJS+rethinkdb搭建的一个设备管理平台 , 功能和STF差不多 , 但是可以实现IOS设备远程控制 。
2.2 ATXServer2远程控制原理简介Android的远程控制主要还是基于 minicap+minitouch+atx-agent;
IOS的远程控制主要还是基于appium fork的WebDriverAgent , 因为appium在WDA中增加了MJPEG Server , 所以让远程投屏成为了可能 。(不过只支持iOS 12.0以上)
2.3 ATXServer2整体项目结构


推荐阅读