stf,代码模块功能分析

介绍

用于Web端设备远程管理

功能

系统支持

  • 支持Android版本2.3.3 (SDK10) 到9.0
  • 支持Wear 5.1
  • 无需root

Web浏览器管理设备

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

主要依赖

Node.js >= 6.9 (latest stable version preferred)(服务器代码)
ADB properly set up(安卓相关测试adb)
RethinkDB >= 2.2(数据库)
GraphicsMagick (for resizing screenshots)(图像处理相关内容)
ZeroMQ libraries installed(消息传递,一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库。它提供一个消息队列, 但是与面向消息的中间件不同,ZeroMQ的运行不需要专门的消息代理message broker)。该库设计成常见的套接字风格的API
Protocol Buffers libraries installed(轻便高效的结构化数据存储格式)
yasm installed (for compiling embedded libjpeg-turbo)(汇编器和反汇编器)
pkg-config so that Node.js can find the libraries(在源代码编译时查询已安装的的使用接口的计算机工具软件
Note that you need these dependencies even if you've installed STF directly from NPM, because they can't be included in the package.

平台语言

  • 页面html使用Pug模版引擎
  • 前端使用的是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

前端res

主要为Service服务和View页面两大部分

/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

猜你喜欢

转载自blog.csdn.net/m0_37693335/article/details/81285529