TC软件详细设计文档(手机群控)
TC软件详细设计文档(手机群控)
作者:将狼才鲸
日期:2021-06-27
源码详见: 才鲸嵌入式 / qtscrcpy_tc_安卓手机群控
qtscrcpy_tc_安卓手机群控: 安卓手机投屏、录屏、手机控制、多台安卓手机群控(TC),基于QtScrcpy源码 (gitee.com)
一、整体框图
1、UI界面
主界面:顶部是LOGO、快捷键、设置,左侧是设备管理列表,中间是手机界面展示,右侧是日志信息(可隐藏)
设置弹出框:设置全局参数(具体选项待调整),并保存到配置文件
2、功能框图
二、业务流程图
1、主流程图
三、模块实现
1、adb模块
adb模块功能 |
查询所有设备 |
开启设备触摸 |
开启反向控制 |
安装apk |
发送并启动server |
调用adb的模块 |
群组列表模块 |
设备模块 |
server模块 |
文件模块 |
|
adb依赖的模块 |
所有连接的手机 |
adb负责查询所有设备、开启设备触摸、开启反向控制、安装apk、发送并启动server建立tcp连接,后续的工作都交给tcp连接来完成。
需要用到adb的有主界面、设备模块、server模块、文件模块
2、群组列表模块
群组列表模块 |
json文件读写 |
json处理:增删改查 |
设备列表动态显示 |
设备管理 |
||||||||||||
显示状态 |
修改设备名 |
修改组名 |
增删组 |
增删设备 |
设备切换分组 |
设备连接和断开 |
设备组指定反向主控 |
设备组指定脚本 |
||||||||
自己被谁调用 |
主界面 |
|||||||||||||||
自己要调用哪些模块 |
快捷键栏模块 |
设备管理模块 |
adb模块 |
设备群组列表模块包含json解析处理模块、列表显示、设备列表管理(显示状态、增加、删除、连接、断开、分组、指定主控)。
3、鼠标键盘系统模块
当UI界面上有键盘按下、鼠标键按下或者鼠标键按下并移动的事件产生时,根据指针所在位置,通知当前位置下UI对应模块的处理函数。
接收键盘键值的界面区域只有主程序、UI上的文本输入框和手机界面显示区域。
接收鼠标事件的区域只有UI上的按钮、文本输入框和手机界面显示区域。
4、设备管理模块
设备管理模块 |
管理一组设备 |
连接和断开当前组所有设备 |
连接和断开单个设备 |
更新群组键值映射配置 |
更新群组操作脚本 |
取消和绑定快捷键操作按钮 |
设置反向群控主机 |
映射所有群控从机 |
||
自己被谁调用 |
群组列表模块 |
|||||||||
自己要调用哪些模块 |
设备模块 |
快捷键模块 |
键值事件 |
设备管理模块:管理一组设备(一个主控设备,多个被控设备)、连接和断开单个设备、连接和断开当前组所有设备、更新群组键值映射配置、更新群组操作脚本、取消和绑定快捷键操作按钮、设置反向群控主机、映射所有群控从机、响应群控主机的手机操作并发送到其它从机
5、快捷键模块
快捷键模块:根据当前被选中的设备或设备组,向设备管理模块发送以下命令:设置为主控设备、下拉通知栏、显示触摸、息屏、关机、音量大、音量小、切换应用、菜单栏、返回、返回主界面、截屏。
6、设备模块
设备模块的功能:操作一台设备,响应键值操作,响应群控操作,响应发送文件、安装apk操作,adb连接手机,启动TCP传输视频流和消息。
设备模块使用了:键值事件、server模块、视频帧缓存、解码、文件操作、视频流处理、画面显示UI、控制器键值映射、配置。
server子模块:传输和启动设备server,设置反向控制
server子模块使用了:TCP Socket
解码子模块:使用ffmpeg库
videobuffer子模块:处理解码完之后的一帧图片
avframeconvert 子模块:将解码后的原始YUV格式的一帧图片转换成RGB格式,以便用于显示
控制器子模块:使用tcp连接,响应快捷键操作,进行剪切板操作,进行键值映射转换
设备画面UI模块:使用openGL显示、安装快捷键映射、响应键值。
四、参考资料
adb:Android 调试桥 (adb)
ffmpeg:FFmpeg 多媒体处理工具
genymobile(Android server):Scrcpy投屏原理浅析-设备控制篇
TCP socket:基于TCP协议的Socket通信
OpenGL:OpenGL 开放图形技术规范
QT:QT
TC软件详细设计文档(手机群控)相关推荐
- 开发详细设计文档_郑州APP开发:开发前,进行详细设计有没有必要?
郑州燚轩软件科技有限公司● 点击蓝字关注我们 ● 一般进行软件开发 的人都知道,在进行郑州APP开发时,项目流程主要包括需求分析.概要设计.详细设计.编码和测试 ,那么在其中有了概要设计的情况下,为什 ...
- 局域网聊天软件 设计文档怎么写?
局域网聊天软件 设计文档怎么写?这种针对数据库记录的 局域网聊天软件 窃取,被一些攻击者称为拖库,于是有了一个自然而谐音的戏称脱裤.只是攻击者日趋不厚道,从前只是偷了人家的裤子,现在还要晾在大街上,并 ...
- rockycapture_RockyCapture航线规划软件介绍文档
马上注册,享用更多功能,让我们一起,飞遍世界! 您需要 登录 才可以下载或查看,没有帐号?抢先注册 x RockyCapture 航线规划 RockyCapture 航线设计规划是基于大疆无人机,由珞 ...
- 微课竞赛系统的设计与实现所需工作条件_启升微课丨从软件设计开发着手准备医疗器械软件描述文档...
启升微课--第四课! 大家好!今天是启升微课的第四课,本微课将跟大家分享的是"从软件设计开发着手准备软件描述文档". 首先,我们要清楚一个问题:有哪些医疗器械需要准备软件描述文档? ...
- 智慧文档手机版隐私政策
智慧文档手机版手机客户端软件最终用户使用授权协议如下 本最终用户软件授权协议(以下简称"协议")是由您,作为最终用户,与智慧文档手机版手机客户端软件开放方 成都奇异智慧科技有限公司 ...
- SCADE Display(OpenGL)软件设计文档生成工具的设计考虑
SCADE Display(OpenGL)软件设计文档生成工具的设计考虑 2018年6月 1 引言 本文档描述在SCADE Display软件设计文档生成工具(以下简称为SDYSDDGEN)的设计过程 ...
- 软件设计文档如何编写,设计文档内容都包括什么
我们经常听到这样的话: "设计文档没有用,是用来糊弄客户和管理层的文档": "用来写设计文档的时间,项目开发早就做完了": "项目紧张,没有时间做设计 ...
- 敏捷开发:软件与文档
也曾尝试过,不带文档的"裸体"前进,可想而知,最后经常造成项目的返工,新来的人员要拼命读以前的人留下的几乎没有注释的源码. 后来尝试过,制订完善的规范,用了大量的软件 ...
- 软件需求分析文档模版
软件需求分析文档模版(转载自国家计算机标准和文件模板) 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素.需求分析是软件定义阶段中的最后一步,是 ...
- 软件项目文档_什么是软件项目的好的文档?
软件项目文档 开放地理空间(OSGeo)基金会最近参加了Google的第一个文档季节 ,其中Google赞助了高级技术作家为开源项目做出贡献. OSGeo是大约50个地理空间开源项目的总括组织. 多年 ...
最新文章
- Leetcode84 柱状图中最大的矩形 详细的解法
- C#面向对象_抽象类
- 数据中心节水管理办法(范例)
- TF学习——TF之TFOD:基于TFOD AP训练ssd_mobilenet预模型+faster_rcnn_inception_resnet_v2_模型训练过程(TensorBoard监控)全记录
- Python爬虫之旅_(数据解析)_bs4
- 计算机操作系统作业答案,计算机操作系统作业及答案
- Java集合框架(一)
- 一个开源的强类型客户端(.NET 中的 Open Fegin)— Rabbit Go
- c语言循环程序怎么编程,c语言程序(5):循环结构程序设计
- vector与array之间转换,向量与数据之间转换
- Chronometer控件实现的Android计时器
- 仿微信添加触摸图片阴影效果
- java List 去除重复元素的五种方式 学习笔记
- 《暗黑3》是如何设计随机地下城的?
- 新浪微博数据采集以及人群画像分析
- Leetcode PHP题解D1:宝石与石头
- pythonspiit函数_python专题高阶函数
- RESTful风格的springMVC
- Vue-cli3入门
- cocos2d-x的初步学习二十三之模仿微信打飞机二