TC软件概要设计文档(手机群控)

作者:将狼才鲸

日期:2021-06-27

源码详见 才鲸嵌入式 / qtscrcpy_tc_安卓手机群控

qtscrcpy_tc_安卓手机群控: 安卓手机投屏、录屏、手机控制、多台安卓手机群控(TC),基于QtScrcpy源码 (gitee.com)

  • 项目需求

基于QtScrcpy项目开发TC软件,开源项目地址QtScrcpy: Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限

1,每组可以连接100台手机(需要PC硬件显卡支持)

2,支持群控

3,支持手机的基本操作

4,可以批量安装apk包

5,支持中文输入法

6,支持脚本运行

7,部署环境:Windows和Ubuntu

8,USB直连

项目周期:一个月

  • 需求分析
  1. 已有QtScrcpy项目参考,不需要从头做系统设计,项目周期可以缩短。
  2. 需要有C++、java、UI界面、音视频开发技能。
  3. 群控、手机的基本操作、安装apk、中文输入、脚本控制、USB连接逻辑在QtScrcpy中都已经实现。
  4. 需要重新开发UI界面,将手机屏幕显示界面从独立的界面合并到同一个主界面中。
  5. 需要连接USB hub。
  6. 需要缩放手机屏幕,缩放屏幕后需要对鼠标和手机屏幕的映射适配正常,需要和电脑屏幕大小适配将不同手机画面放在合适的位置。
  7. 实际群控时,可以将一个界面放大显示,其它界面缩小后铺满其它的空间。
  8. 所有增加视频推流合并的模块,做多图层显示。
  • 竞品分析

侠客版本:用服务器abd做连接,再需要一台电脑通过网络做传输,效率低。

其它版本:没有源码

  • 项目计划

项目总耗时

150小时,6.3 ~ 7.3

工作日晚上4h + 周末每日8h

进度节点

概要设计阶段

6.3 ~ 6.6

详细设计阶段

6.7 ~ 6.13

主页面完成及单元测试

6.14 ~ 6.20

全部页面完成及单元测试

6.21 ~ 6.27

综合测试

6.28 ~ 6.30

项目联调

7.1 ~ 7.3

项目预算

150h * xx元/h

x元

第一步,将设备ui移到主ui,在主ui中显示一个手机窗口,不再重新弹出窗口

第二步,将一个手机窗口拷贝成96个窗口,并缩小窗口,依然保证交互正常

第三步,在主ui中连接多个设备,并保证交互正常

第四步,将主ui的菜单做到左侧竖排和隐藏菜单,并让主界面能全屏

第五步,将手机窗口的配置操作融合到主ui中

第六步,增加按手机个数动态排列手机窗口

第七步,增加手动配置菜单哪些项显示哪些项隐藏

第八步,ui上可以设置一个主要显示的手机大界面,其它的为统一的小界面

  • 概要设计
  1. 系统框图

  1. 模块功能

配置选项

安卓文件保存路径,视频流最大帧率,跳过渲染过期视频帧,解码方式:硬解或软解,server版本号,server推送路径,adb路径,指定编码器(仅支持h264),日志级别。保存路径,比特率,最大尺寸,窗口有无标题栏,方向锁定,录屏,后台录制,显示帧率,窗口置顶,自动息屏,保持唤醒,小窗模式,窗口大小。(视频仅支持MP4+H264)

标题名,推送文件路径,server组件版本号,server存放配置,使用桌面OpenGL,使用皮肤,缓存区帧,adb路径,日志级别,编解码器设置,编解码器路径,录屏路径,比特率,最大尺寸,录屏封装格式(mp4等),方向锁定,录屏,显示帧率,窗口置顶,关闭自动旋转,保持活动,精简模式,窗口大小,设备名称

手机端server

主线程

编码和推流到PC端,视频流,视频采集(录屏)

控制器线程

接收键盘鼠标信息,控制指令,安卓模拟点击

接收线程

发送剪切板等信息到PC端

运行中应用消息,剪切板,手机信息,显示信息,输入信息,电源管理,系统服务管理,状态栏,图像缓冲截屏,窗口管理,清理连接,编解码,控制器键盘鼠标,控制器消息,桌面连接,设备控制,显示信息,IO,键值映射,日志,参数配置帧率日志等,智能指针,位置,画幅大小,工作区

编解码器操作测试、控制消息读测试、设备消息写测试、字符串单元测试

PC端client

主线程

接收qt的控制

视频流线程

接收视频用于解码显示或者编码后存储为文件

控制器线程

发送键盘鼠标信息

接收线程

接收手机剪贴板之类信息

键盘映射

使用相对位置,将鼠标与触摸进行映射,将键盘与点击进行映射,当前配置了吃鸡和抖音等应用操作。

ui

业务逻辑

等待当前文件传输完成,文件传输完成,文件传输失败,安装apk,文件传输,传输完成,保存在,失败,无线连接,无线断开,启动配置,录像保存路径,选择路径,录制格式,录制屏幕,无边框,启用精简模式,精简模式,一键WIFI连接,一键USB连接,双击连接,锁定方向,显示fps,保持唤醒,设备名称,更新设置名称,停止所有服务,adb命令,终止执行,清理,反向连接,自动启用脚本,后台录制,自动息屏,应用脚本,最大尺寸,窗口置顶,刷新脚本,获取设备IP,USB和无线,停止服务,启动服务,设备序列号,比特率,启动adbd,刷新设备列表,显示,退出,原始,不锁定,警告,退出还是最小化到托盘,最小化到系统托盘,取消,提示。全屏,下拉通知,锁屏,解锁,触摸显示开关,关闭屏幕,电源,

音量加,音量减,切换应用,菜单,主界面,返回,截图。等待当前文件传输完成,文件传输完成,文件传输失败,文件不存在。

样式表

adb

adb路径,允许调试,设备串号,设备IP,方向,旋转,推送,安装,移除。

设备管理

连接设备,分配端口,更新脚本,窗口置顶,显示帧率,断开设备,断开所有设备,设置群控信号,控制状态切换,鼠标事件,滚轮事件,键盘事件,释放端口。键值映射路径,加载键值映射参数,切换键盘,反转,点击监测,检查延时,消息控制,切换游戏,更新尺寸,触控ID,模拟多点触控,处理鼠标移动,监测鼠标位置,移动鼠标位置,鼠标移动定时器,鼠标滚轮键值事件,剪贴板信息,设置视频帧信息,打开解码器,推流,fps控制,帧缓存,adb处理,录屏,绘制图像和纹理,TCP server,执行adb命令,视频socket,流控制,界面控制。

控制指令,鼠标键盘事件,视频流推送到ffmpeg和opengl,屏幕

显示

解码,渲染,显示

  1. 系统流程图

暂略。

手机设备端执行server,PC主机端执行client。

PC端捕捉鼠标和键盘,将命令发到手机端执行。

手机录屏h264流,PC端无缓存立即显示。

TCP 5005端口是调试端口。

当前不支持声音。

视频流线程收到一帧后马上通知主线程显示,不做缓存和时间控制。

  1. UI设计示意图

主界面布局如图:

  • 详细设计

见详细设计文档。

TC软件概要设计文档(手机群控)相关推荐

  1. 软件概要设计文档(终)

    软件概要设计文档 1.引言 1.1目的 该文档的目的是描述辅助选课系统的概要设计,主要内容包括系统功能简介.系统结构设计.系统结构设计.系统接口设计.模块设计和界面设计等. 本文档预期的读者包括设计人 ...

  2. 需求规格说明书和软件概要设计文档最终版上线~

    由于前面已经发布的版本中的部分活动图在由Word文档转化为Pdf文件时发生变形,此次针对这个问题进行了修复和完善~推出了最终的需求规格说明书4.0版本和软件概要设计说明书3.0版本~ 需求规格说明书修 ...

  3. 局域网聊天软件 设计文档怎么写?

    局域网聊天软件 设计文档怎么写?这种针对数据库记录的 局域网聊天软件 窃取,被一些攻击者称为拖库,于是有了一个自然而谐音的戏称脱裤.只是攻击者日趋不厚道,从前只是偷了人家的裤子,现在还要晾在大街上,并 ...

  4. rockycapture_RockyCapture航线规划软件介绍文档

    马上注册,享用更多功能,让我们一起,飞遍世界! 您需要 登录 才可以下载或查看,没有帐号?抢先注册 x RockyCapture 航线规划 RockyCapture 航线设计规划是基于大疆无人机,由珞 ...

  5. python飞机大战概要设计说明书_飞机大战概要设计文档 4改

    飞机大战概要设计 文档规格说明书 1. 引言部分 1.1目的 该文档描述的是飞机大战的概要设计,主要内容包括飞机大战功能简介等. 本文档预期的读者包括全体小组成员及指导教师. 1.2 范围 1.2.1 ...

  6. 智慧文档手机版隐私政策

    智慧文档手机版手机客户端软件最终用户使用授权协议如下 本最终用户软件授权协议(以下简称"协议")是由您,作为最终用户,与智慧文档手机版手机客户端软件开放方 成都奇异智慧科技有限公司 ...

  7. python飞机大战概要设计_飞机大战概要设计文档 4改

    飞机大战概要设计 文档规格说明书 1. 引言部分 1.1目的 该文档描述的是飞机大战的概要设计,主要内容包括飞机大战功能简介等. 本文档预期的读者包括全体小组成员及指导教师. 1.2 范围 1.2.1 ...

  8. 软件设计文档如何编写,设计文档内容都包括什么

    我们经常听到这样的话: "设计文档没有用,是用来糊弄客户和管理层的文档": "用来写设计文档的时间,项目开发早就做完了": "项目紧张,没有时间做设计 ...

  9. 敏捷开发:软件与文档

    也曾尝试过,不带文档的"裸体"前进,可想而知,最后经常造成项目的返工,新来的人员要拼命读以前的人留下的几乎没有注释的源码.        后来尝试过,制订完善的规范,用了大量的软件 ...

  10. 软件需求分析文档模版

    软件需求分析文档模版(转载自国家计算机标准和文件模板) 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素.需求分析是软件定义阶段中的最后一步,是 ...

最新文章

  1. 一文读懂计算计仿真技术
  2. C++中在什么时候需要使用“常引用”?
  3. 22省份公务员考试开考,个别职位竞争比达2624:1
  4. 无须搭建环境,只需十分钟使用Google Colab平台,基于YOLOv4和Darknet来实现的物体检测
  5. MS SQL入门基础:创建和使用图表
  6. mysql navicat如何为表添加外键?
  7. oracle中出现会话被锁
  8. python中的转义字符
  9. Salesforce Sales Cloud 零基础学习(四) Chatter
  10. 网络 - 电脑代理 - 学习/实践
  11. iOS转场动画之微信朋友圈图片查看器
  12. 在VS Code中调试nasm,使用golink连接
  13. Python中如何进行代码换行?
  14. linux限制网口带宽指令,Linux使用wondershaper限制网络带宽
  15. linux环境变量占位符,linuxea:go fmt简单用法和占位符使用(6)
  16. python画三维立体图-Python 绘制酷炫的三维图步骤详解
  17. 使用Python和OpenCV标记超级像素的炫彩度
  18. orangepi——香橙派使用初识
  19. 云上部署Python3爬虫-以腾讯云+Ubuntu为例-0525-v1.0张雅慧
  20. FOC中的Park变换(TI与ST)

热门文章

  1. 解决Hash冲突四种方法
  2. 计算机制作ppt教程,ppt怎么做?手机电脑超全PPT制作教程_教你做出完整的PPT
  3. 深度学习的深度和宽度的理解
  4. 使用Python脚本将酷狗音乐的缓存文件修改为可播放
  5. 查看打包成exe程序的批处理并提取代码
  6. udhcpc 后台运行的方法
  7. 网络安全--安全攻防概述
  8. 预加重——语音信号处理之一
  9. ASS 字幕格式规范
  10. 多元函数极值及其求法