RemoteControl 相关技术及产品初步调研
一、RemoteControl 相关产品
1. TeamViewer
官网:https://www.teamviewer.cn/cn/
2. TotalControl
官网:http://tc.sigma-rt.com.cn/.
3. 向日葵远程控制
官网:https://sunlogin.oray.com/
4. Realvnc
官网:https://www.realvnc.com/en/
5. AirDroid
官网:https://www.airdroid.com/zh-cn/index.html
6. Scrcpy
项目地址:https://github.com/Genymobile/scrcpy
二、远程控制技术
1. PC ---> Android :
此技术相对成熟了,且无需Root操作,即可实现在PC上浏览Android设备界面并实现在PC上操作Android。
其中:USB连接开启调试模式进行控制的方案较为简单。TCP控制的实现较为复杂,但是都是属于可以研究的方向。
2. Android ---> Android:
此技术存在较大壁垒,如果被控制的Android设备没有root的话,那么我们无法通过执行su+命令操作来完成对被控制设备的远程控制。
一般仅仅能做到远程镜像或者远程摄像头的程度。
3. Android ---> PC:
此技术也是相对成熟了,且市面上实现这个需求的技术厂商还是很多的。实现方案待整理和实现。
三、实现方案&研发逻辑
1. 方案一
Adb技术实现PC远程控制Android设备
准备工作:
- USB 连接Android设备。
- Android 设备打开开发者选项和USB调试。
开发逻辑:
- 使用 adb devices ** 相关命令获取当前连接的设备列表
- 使用 adb shell screencap ** 相关命令定时获取屏幕的画面并刷新到远程控制页面
- 使用 adb shell input ** 相关命令实现远程控制
实现方案优点:
- 免Root
- 开发实现相对简单
实现方案缺点:
- 远程画面帧率太低,远程端体验不好
- 实时性较低,操作感较差
项目代码地址:https://github.com/renhui/AdbRemoteControl
2. 方案二
考虑到方案一的实现,最大的问题在于远程画面帧率问题,可尝试进行优化。
可以考虑使用 minicap 获取手机实时屏幕。
参考项目:
https://github.com/openstf/stf
https://github.com/openstf/minicap
参考Demo:
https://github.com/huanglqweiwei/PhoneMirror
https://gitee.com/phery/minicapGo
四、拓展阅读
8分钟带你了解 OpenSTF:https://www.it610.com/article/1293550222558961664.htm
OpenSTF二次开发:https://blog.csdn.net/weixin_43164644/article/details/82823176
基于Scrcpy 的远程调试方案:https://testerhome.com/topics/21647
STF 工具之 minicap-补充:https://testerhome.com/topics/8070