前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建自己的设备云平台

搭建自己的设备云平台

作者头像
赵云龙龙
发布2019-07-11 10:21:34
3.8K0
发布2019-07-11 10:21:34
举报
文章被收录于专栏:python爱好部落python爱好部落

以前觉得STF这玩意不太好搭建,过程太复杂。现在发现这玩意还是很好用的。

试想一下,如果公司的设备有限,有的人要用一下,只是看一个东西,借走了设备很久不还。

有的时候开发在别的楼层,想看个东西。或者跟你一起重现一下bug. 那么得跑来跑去的。 有没有办法共享一下屏幕?让他不需要浪费在路上,或者占用设备资源。 STF就可以解决这个问题。

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

OpenSTF是使用nodejs和angularjs开发,遵循apache licene2.0开源协议,用户可以对源码进行修改发布。 STF把所有的手机都连接到一台电脑,只要其他电脑和这台电脑处于同一个局域网下(公司内部一般都是处于一个局域网下),那么其他电脑就可以通过浏览器输入地址,访问这电脑所连接的所有设备。并且可以上面进行操纵。 OpenSTF的功能 1、 在Web上支持管理上百个android设备。 2、 支持Android多个版本(2.3.3 ~ 8.0),而且不需要root。 3、 实时屏幕操作和显示。 4、 支持adb connnect远程连接调试。 5、 可以从PC机键盘输入到远程的android设备中。 6、 安装卸载APK。 7、 android设备信息的展示(如:网络状态、MIME、android版本、手机型号等等)。 8、 远程开关机、远程开关WIFI、截屏、LogCat等等。

OK, 我们来体验一把。这里以mac电脑为例。 安装,不建议用docker来弄,这个还不是很成熟,我之前一直想用这种方式,结果卡住了很久。 首先你电脑上要装好node, 以及android平台。 两条命令可以搞定。

代码语言:javascript
复制
brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config

然后安装就可以了:

代码语言:javascript
复制
npm install -g stf

安装过程可能会报这样的错。

代码语言:javascript
复制
Failed at the bufferutil@1.3.0 install script

这个是因为node版本过高,需要装node8 然后执行:

代码语言:javascript
复制
brew install node@8If you need to have node@8 first in your PATH run:
  echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.bash_profile

然后查看一下node的版本号:

代码语言:javascript
复制
andersons-iMac:~ anderson$ node -v
v8.16.0

stf运行

stf使用的是RethinkDB数据库,所以在启动stf前需要先启动RethinkDB,启动RethinkDB很简单,只需要执行以下命令:

代码语言:javascript
复制
rethinkdb

RethinkDB启动后,新建终端,执行以下命令:

代码语言:javascript
复制
stf local

如果想让其他机器连接到stf需要加上 --public-ip

代码语言:javascript
复制
stf local --public-ip <本机的IP地址>

最后输入http://localhost:7100或者 http://<ip地址>:7100 如果能成功访问,则可以实现设备的远程操作啦! 随便弄个账号登陆 打开页面是这样的:

当前连接的手机会高亮,断线的会灰。 可以看到链接的各个手机信息以及用户信息

选择一台连接的手机,就可以在电脑上操控手机了,手机上操纵,也可以投到电脑上。

如果需要安装,直接将安装包拖入里面就可以了。 可以看到安装包的信息,也可以方便截图,获取log,电脑上快捷操作手机

如果手机都接在你的电脑上也就是主电脑上,别人登陆跟你一样的账号,就可以看到和操纵当前你手机的屏幕,如果用不同的账号,他只能看到和操纵非busy手机。

如果想其他人的手机也连接到你的系统里面来,则可以 在你的电脑上 其他环境暴露接口:

代码语言:javascript
复制
adb -a -P 5037 fork-server server

启动stf服务

代码语言:javascript
复制
stf local --public-ip your ip --allow-remote

别人的电脑上也要启动:

代码语言:javascript
复制
adb -a -P 5037 fork-server server

执行下述命令【其中127.0.0.1可换成实际你的电脑IP】:

代码语言:javascript
复制
stf provider --name mikezhoudeMac-mini.local --min-port 7400 --max-port 7700 --connect-sub tcp://127.0.0.1:7114 --connect-push tcp://127.0.0.1:7116 --group-timeout 20000 --public-ip 172.17.9.49 --storage-url http://localhost:7100/ --adb-host (对方电脑IP) --adb-port 5037 --vnc-initial-size 600x800 --allow-remote

使用过程中的感受,手机必须得能连接adb的,想vivo,oppo等就比较难搞。 截图很方面,我能截图UI和抓的API,用个录屏工具,还可以录制视频。 安装时候,往里面一拖就可以了。 有一个不太好的地方,就是用着用着,它莫名其妙给你把app删除了。目前还没找到原因。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python爱好部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • stf运行
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档