1. 什么是STF?

STF(Smartphone Test Farm)是一个移动设备管理平台,可以对移动设备进行远程管理、调试、远程桌面监控等操作。这个系统类似于目前很流行的云测服务比如Testin,虽然网页上提供的设备很像模拟器中的设备,但是实际上都是真机。

STF是openstf团队使用nodejs和angularjs开发,遵循apache licene2.0开源协议,用户可以对源码进行修改发布。(源码地址:https://github.com/openstf/stf)

目前官方支持的只有安卓设备,主要支持的系统有:

  • 支持Android版本2.3.3(SDK级别10)到9.0(SDK级别28)
  • 支持Wear 5.1(但由于缺少权限而不支持5.0)
  • 支持Fire OS,CyanogenMod和其它基于Android系统的发行版

根据原始团队说明,STF已不再进行维护,但推荐了STF的一个分支DeviceFarmer(源码地址:https://github.com/DeviceFarmer/stf)。openstf团队提供的最新版本为v3.4.2(DockerHub平台)/ v3.4.1(npmjs平台)。

目前我搭建STF使用的是openstf团队在npmjs平台的v3.4.1版本,本文也就此版本进行记录,仅供参考。

2. STF支持的功能有什么?

  • 通过浏览器远程控制任何设备

    • 实时屏幕视图

      • 刷新速度可以达到30-40FPS,具体取决于规格和Android版本。有关更多信息,请参见minicap
      • 支持屏幕旋转
    • 支持使用自己的键盘输入文字
      • 支持中继键
      • 复制和粘贴支持(尽管在较旧的设备上可能有点挑剔,但您可能需要长按并手动选择粘贴)
      • 不幸的是,可能不适用于非拉丁语言
    • 通过minitouch在触摸屏上提供多点触摸支持,Alt在拖动时按住可以在常规屏幕上支持两根手指捏/旋转/缩放手势
    • 拖放安装和启动.apk文件
    • 通过minirev反向端口转发
      • 即使设备不在同一网络上,也可以直接从设备访问本地服务器
    • 在任何浏览器中轻松打开网站
      • 实时检测已安装的浏览器,并显示为可选选项
      • 如果用户选择默认浏览器,则会自动检测到
    • 执行shell命令并查看实时输出
    • 显示和过滤设备日志
    • 可以使用adb connect连接远程设备
      • adb可以在本地运行任何命令,包括shell访问
      • Android Studio和其他IDE支持,在浏览器上观看设备屏幕的同时调试您的应用程序
      • 支持Chrome远程调试工具
    • 提供文件资源管理器以访问设备文件系统
    • VNC实验支持(正在进行中)
  • 监控您的设备清单
    • 查看哪些设备已连接,离线/不可用(表明USB连接弱),未授权或已拔出
    • 查看谁在使用设备
    • 通过电话号码,IMEI,ICCID,Android版本,运营商,产品名称,组名称和/或许多其他属性来搜索设备,并具有简单但功能强大的查询
    • 在需要物理定位的设备上显示带有标识信息的亮红色屏幕
    • 跟踪电池电量和健康状况 基本的Play商店帐户管理
      • 显示,删除和添加新帐户(添加可能无法在所有设备上进行)
    • 显示硬件规格

3. STF的前置依赖

建议在安装好Node.js之后安装cnpm(npm install -g cnpm --registry=https://registry.npm.taobao.org),后续使用cnpm替换所有npm的操作。

  1. 需要Node.js 8.x (某些依赖项不支持较新的版本)
  2. adb正确设置
  3. 安装RethinkDB > = 2.2
  4. 安装GraphicsMagick(用于调整屏幕截图的大小)
  5. 安装ZeroMQ
  6. 安装protobuf
  7. 安装yasm(用于编译嵌入式libjpeg-turbo)
  8. 安装pkg-config,以便Node.js可以找到库

【注意】即使直接从NPM安装了STF,也需要这些依赖项,因为它们不能包含在软件包中。

在Mac OS上,可以使用brew安装大多数依赖项:

brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config

但上述代码很可能执行失败,届时根据brew的提示进行操作,可能涉及从源码安装、缺失依赖安装、无权限处理等,最终耗时可能比较长。

官方推荐在Linux发行版上安装使用STF,开发团队的开发环境为CoreOS,因此使用Linux发行版可能搭建过程较为容易,生产体验可能较其他系统更好。

4. STF安装及运行

安装好前置依赖之后就比较顺利了,这里通过npmjs安装STF,仅需一行代码(如果顺利的话):

npm install -g stf    或    cnpm install -g stf

静静等待安装完成,如果执行失败,届时根据提示进行操作,可能涉及从源码安装、缺失依赖安装、无权限处理等。

安装完成后,先开一个窗口运行rethinkdb,再开一个窗口运行stf,之后就可以通过 http://localhost:7100/ 访问stf平台了,具体代码如下:

rethinkdbstf local

【注意】要分两个窗口分别运行,先运行rethinkdb,再运行stf local。

上述代码属于基本使用,建议将上述代码替换为如下代码:

rethinkdb --bind all --cache-size 8192 --http-port 8090stf local --public-ip <your_internal_network_ip_here> --allow-remote

执行完成后,你可以通过 http://<your_internal_network_ip_here>:7100/ 访问stf平台。

5. 一些注意事项

  • node版本必须是 8.x,建议 v8.17.0
  • protobuf版本必须是 3.x,建议越高越好
  • 安装文件夹的用户权限问题
  • 安卓版本10及以上设备可支持,但需进行二次开发
  • IOS设备可支持,但需进行二次开发
  • 管理员账户可配置环境变量进行设置,也可在登录后使用后门开启管理员权限(上上下下左右左右Enter)

完毕

今天的分享就到这里,文章多有不足,各位小伙伴有什么想法可以直接评论或是私信,要是对你有所帮助就给我一个赞吧,喜欢我的小伙伴可以关注我哦~

支持我的小伙伴们可以微信搜索“Android思维库”,或者微信扫描下方二维码,关注我的公众号,每天都会推送新知识~

远程移动设备平台STF搭建指南相关推荐

  1. 设备远程监控物联网平台

    类型: 定制服务 软件包: backup iot predictive professional services remote monitoring storage 物联网 联系服务商 产品详情 产 ...

  2. 微软OpenPAI平台搭建指南

    微软 Open PAI 平台搭建操作指南 微软 Open PAI 平台搭建操作指南 OpenPAI架构与功能简介 OpenPAI是由微软亚洲研究院和微软(亚洲)互联网工程院联合研发的,支持多种深度学习 ...

  3. 基于Visual Studio Code 的佳明穿戴设备APP开发平台的搭建

    本文以图文方式详细介绍了基于Visual Studio Code软件的佳明穿戴设备APP开发平台的搭建步骤.环境变量设置方法以及平台运行环境的设置等,为佳明穿戴设备APP的开发者提供了详尽的教程和参考 ...

  4. 玩转AIDS第一步:个人计算设备搭建指南

    深度学习是人工智能必不可少的一部分.而在硬件配置上,大家都在谈论GPU的重要性.不可置否,GPU是掀起深度学习热潮的主要力量,也是开展该领域工作所必不可少的硬件设备. 不幸的是,人们往往把CPU.RA ...

  5. 《网络安全测试实验室搭建指南》—第1章1.2节硬件要求

    本节书摘来自异步社区<网络安全测试实验室搭建指南>一书中的第1章1.2节硬件要求,作者[美]Michael Gregg(迈克尔 格雷格),更多章节内容可以访问云栖社区"异步社区& ...

  6. 【转载】拿来即用的企业级安全运维体系搭建指南

    拿来即用的企业级安全运维体系搭建指南 本文我们将针对如何解决问题来进行详细说明,从问题入手,通过纠正或者培养良好的运维安全习惯,搭建完整的运维安全技术体系. 作者:林伟壕来源:DBAplus社群| 本 ...

  7. 云计算入门科普系列:小型云计算平台怎么搭建?

    俗话说"学起来简单,做起来就难了",小型云计算平台怎么搭建?估计很多人都毫无头绪不知道如何是好,所以下面来讲解一个小型方案的云计算实施例子. 如果说需要满足 60 个以内的终端用户 ...

  8. 八百元八核的服务器?二手服务器(工作站)搭建指南(下)

    本文分成两部分,上一部分传送门:<八百元八核的服务器?二手服务器搭建指南> 在上一部分我们已经学习了搭建二手服务器的基础知识,这部分,我们将深入学习各种配件的详细参数.选择适合的配置.学习 ...

  9. Linux操作系统下Moodle平台的搭建

    转自http://fuwu.aieln.com/info/show/711/ 软件下载地址(Moodle2.2.2(Build:20120312)):http://bbs.aieln.com/arti ...

  10. 高通Android智能平台环境搭建_编译流程分析

    高通Android智能平台环境搭建_编译流程分析 高通平台环境搭建,编译,系统引导流程分析 TOC \o \h \z \u 1. 高通平台android开发总结. 7 1.1 搭建高通平台环境开发环境 ...

最新文章

  1. linux下如何将mysql加入环境变量
  2. [debian]use ISO as debian apt source / 使用ISO文件作为apt源
  3. 重写equals就必须重写hashCode的原理分析
  4. linux命令之远程文件或文件夹拷贝-scp
  5. php redis 源码分析,从源码中分析关于phpredis中的连接池可持有数目
  6. 计算机一级上机考试试题题库,2016年计算机一级上机考试题库
  7. AttributeError: module ‘urllib‘ has no attribute ‘urlopen‘错误
  8. 累计增量备份策略_数据安全与备份解决方案ZDLRA快速恢复
  9. 【LeetCode每天一题】Permutations(排列组合)
  10. Bootstrap CSS 编码规范之媒体查询的位置
  11. Particle Filter Tutorial 粒子滤波:从推导到应用(三)
  12. 《Unix网络编程(第3版)》代码编译的一些问题
  13. WebView的简单使用
  14. Fragstats4.2.1入门心得
  15. bp神经网络误差反向传播,什么叫误差的反向传播
  16. win11无线网络适配器出现感叹号怎么办 windows11无线网络适配器出现感叹号的解决方法
  17. 【蓝桥杯-单片机学习笔记(十五)】NE555频率测量
  18. 人工智能AI学习路线01-AI概念
  19. 求最大值-本题目要求读入2个整数A和B,然后输出两个数的最大值
  20. win7下l2pt/sec 的789报错解决

热门文章

  1. 惠普HP ProDesk 400 G2 加装BCM94352HMB网卡
  2. arp表老化时间及其修改
  3. 汽车EE架构:5大域介绍
  4. 虚拟机搭建与镜像文件
  5. python 批量下载地理空间数据云
  6. pygame基础教程
  7. CASIA WebFace | face recognition data | 人脸识别数据集 | 云盘分享 |
  8. Godot3游戏引擎入门之十:介绍一些常用的节点并开发一个小游戏(中)
  9. Android之使用自定义华为扫描SDK扫描二维码和识别本地图片
  10. c语言 头文件 重复包含,C语言头文件如何避免重复包含