stf,代码模块功能分析

介绍

用于网络端设备远程管理

功能

系统支持

  • 支持Android版本2.3.3 - 9.0
  • 支持穿5.1
  • 无需根

网络浏览器管理设备

  • 屏幕操作和显示(30-40fps(每秒帧数每秒显示的帧数))
  • 支持PC机键盘输入到远程的设备(复制粘贴)
  • 支持多点触控操作远程设备
  • 支持adb connnect远程连接调试
  • 拖拽安装APK
  • 远程设备提供
  • 设备信息的展示(如:网络状态,MIME,机器人版本,手机型号等等)
  • 远程开关机,远程开关WIFI,截屏,logcat的等等
  • 执行外壳命令
  • 设备文件管理

主要依赖

Node.js > = 6.9(最新稳定版首选)(服务器代码)
ADB正确设置(安卓相关测试adb)
RethinkDB > = 2.2(数据库)
GraphicsMagick(用于调整屏幕截图)(图像处理相关内容)安装
ZeroMQ库(消息)传递,一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库。它提供一个消息队列,但是与面向消息的中间件不同,ZeroMQ的运行不需要专门的消息代理消息代理)。库该设计分类中翻译常见的套接字风格的API
协议缓冲器库安装(轻便高效的结构化数据存储格式)
YASM安装(用于编译嵌入的libjpeg涡轮增压)(汇编器和反汇编器)
pkg配置让Node.js的可以找到库(在源代码compile-时查询已安装的的使用接口的计算机工具软件),
需要注意的是,你需要,即使你已经安装了STF直接从NPM这些依赖,因为他们不能包括在内。

平台语言

  • 页面的HTML使用帕格模版引擎
  • 前端使用的是Angularjs
  • 后端使用的是的NodeJS
  • 使用数据库的的英文对象型数据库 Rethinkdb

Rethinkdb

Rethinkdb属于对象型数据库,使用的是json字符串格式保存数据。

目录详解

/.tx #集成翻译平台Transifex的相关配置,用于语言翻译
/bin #启动文件,调用的是lib/cli/local/index.js
/docker #Docker的相关配置
/lib #后端代码
/res #前端代码
/doc #文档说明,包含VNC,部署,API
/test #状态检测
/vendor #安装到手机上的应用和服务,包括minirev,minitouch,STFService

前端资源

主要为服务服务和浏览页面两大部分

/app #前端web
 - /components/stf #服务组件,用于与后端通讯
 - /control-panes #页面,设备控制
 - /device-list #页面,设备列表
 - /docs #页面,帮助
 - /layout #页面,布局
 - /menu #页面,菜单
 - /setting #页面,设置
 - /terminal #页面,终端样式
 - /user #页面,用户,暂未完成
 - /views #页面,主视图       
/auth #登录认证
 - /ladp #页面,LADP认证
 - /mock #页面,默认验证
/common #其他
 - /lang #语言包
 - /logo #页面,图标
 - /status #页面,脚本
/test #登录,跳转
/web_modules #样式

后端LIB

/db #数据操作相关文件    
/units #核心代码,用于功能实现
 - /api #主要的RESTful APIs
 - /app #提供主要HTTP服务,处理所有静态资源,包括图片,脚本和样式表
 - /auth #授权验证,Mock auth,OAuth 2.0,LDAP,SAML 2.0
 - /device #设备功能的具体实现.设备端底包,服务和STFservice.apk的安装
 - /log #将设备事件log存储至数据库
 - /notify #用于推送通知或到你的环境
 - /poorxy #数据库代理相关
 - /processer #设备和app之间的桥,几乎所有通讯都经过它
 - /provider #管理设备相关、 设备提供和发收命令
 - /reaper #接收heartbeat(心跳),处理设备异常断连,监听设备是否掉线、异常等
 - /storage #截图,图像存储和调整,操作apk
 - /triproxy #代理转发 用于接受和处理来自app和设备端的请求
 - /websocket #用于客户端js和服务端(ZeroMQ,Protobuf )的通讯,所有action均由此发送
/util #内部方法
/wire #队列,路由,流相关方法


reaper/ heartbeat-interval 是指心跳时间,为了保证provider可用,每隔一段时间provider会发出一个heartbeat,reaper接收这个heartbeat,如果reaper在自己的超时时间内没有收到provider的heartbeat,会认为这个provider下线



作者:PreFU
链接:HTTPS://www.jianshu.com/p/b01ae1d29b44

你可能感兴趣的:(python)