简介
atxserver2是一个移动设备管理平台,主要是Python3+NodeJS+RethinkDB开发,
必装环境:
git lfs,Nodejs(建议装Nodejs 8,高版本偶尔会有问题),python3.X(建议3.6.x或者3.7.x),ADB,或者直接docker部署
整体项目结构
整体项目主要包括四部分:
1.RethinkDB : 这是一个开源的轻量级的数据库,是用来存储数据的, 官网:https://rethinkdb.com/
2.atxserver2 : 这一部分主要负责处理数据,显示与用户的前端交互等等,所以单独运行atxserver2也可以看到效果,当运行起来以候访问: IP:4000 就可以看到效果;
3.atxserver2-android-provider: 这一部分是接入安卓设备必须启动的项目,主要负责安卓设备和平台的交互工作,要想接入安卓设备必须启动此项目;
4.atxserver2-ios-provider: 这一部分是接入IOS设备必须启动的项目,主要负责IOS设备和平台的交互工作,同样的要想接入IOS设备必须启动此项目(注意需要MAC电脑)
atxserver2服务端项目结构
atxserver2服务端项目主要采用 Tornado框架与Element-UI,其中貌似还有点BootStrap;
总之此项目负责前端显示的内容;
项目结构:
|-- static 静态目录
|-- templates 前端界面
|-- web 网页代码
|-- urls.py 路由整合文件
|-- settings.py 配置文件
|-- database.py 数据库操作相关
|-- utils.py 常用配置
|-- views 每个界面的逻辑
|-- slave.py 与atxslave通信用
|-- device.py 设备相关路由
|-- base.py 基于RequestHandler的基类
还有一些文件夹
scripts文件夹: 主要放着一些用于调试开发的工具类等,比如想调试安卓项目可以单独运行fake_android_provider.py 与atxserver2-android-provider,并且其中的参数要改一些,一般不用太关注这个文件夹.
examples文件夹 : 存放着一个自动化的Demo,采用的自动化框架是uiautomator2,设备占用接口参考了openstf的API;
所有的接口采用token认证,每个请求在 Header中增加 Authorization: Bearer xxxxx-token-xxxx,这个token值可以在个人的用户信息界面获取到,也存储在rethinkdb里;
接口都是通过web请求调用,可以用 “httpie” 这个工具或者直接用python的 request 方法调用;
具体的API文档:https://github.com/openatx/atxserver2/blob/master/API.md
补充
很多人都会好奇atxserver2与stf有什么不同,为什么采用atxserver2而不用stf。
这个其实没有明确的优缺点;
stf属于老项目,更新维护很慢,作者位于国外,交流不变;主要语言js居多,框架比较完善定型了;
atxserver2 主要使用python3,国内作者,没事可以把作者拉出来沟通下,atxserver2更像是一个内核发动机;可以自己DIY一些想要的功能;
两个项目其实没有明显的优缺,只是看哪个更适合自己;