搭建代码框架并更新文档
This commit is contained in:
35
README.md
35
README.md
@@ -29,16 +29,21 @@
|
||||
|
||||
- **受益**:应用场景极大丰富,从简单的副屏扩展到复杂的多设备协作演示、双向画板等。
|
||||
|
||||
### 2.3 连接通用:支持RNDIS、WiFi、以太网等多种连接方式
|
||||
### 2.3 连接通用:支持局域网和互联网连接
|
||||
|
||||
- **网络抽象层(Network Agnostic)**:设计统一的网络接口,自动选择或同时管理多种物理连接。
|
||||
- **USB RNDIS**:优先使用,提供近似有线的高带宽、低延迟体验。
|
||||
- **Wi-Fi 局域网**:提供无线便利性,支持一对多广播。
|
||||
- **有线以太网**:为台式机等设备提供稳定连接。
|
||||
- **网络抽象层(Network Agnostic)**:设计统一的网络接口,自动选择或同时管理多种连接方式。
|
||||
- **局域网连接**(优先使用):
|
||||
- **USB RNDIS**:优先使用,提供近似有线的高带宽、低延迟体验。
|
||||
- **Wi-Fi 局域网**:提供无线便利性,支持一对多广播。
|
||||
- **有线以太网**:为台式机等设备提供稳定连接。
|
||||
- **互联网连接**(通过 NAT 穿透):
|
||||
- **STUN**:NAT 类型检测和公网 IP 发现,支持公网直连。
|
||||
- **TURN**:中继服务器支持,当直连失败时自动切换。
|
||||
- **ICE 协议**:自动选择最佳连接路径(局域网 > 公网直连 > TURN 中继)。
|
||||
|
||||
- **技术实现**:NetworkManager负责探测可用连接,根据性能(延迟、带宽)自动优选或负载均衡。应用层无需关心底层是USB虚拟网卡还是真实网卡。
|
||||
- **技术实现**:NetworkManager负责探测可用连接,根据性能(延迟、带宽)自动优选或负载均衡。集成 ICE 协议实现 NAT 穿透,支持局域网和互联网无缝切换。应用层无需关心底层连接方式。
|
||||
|
||||
- **受益**:用户无需手动配置网络,系统自动选择最佳路径,并提供从有线到无线的无缝切换能力。
|
||||
- **受益**:用户无需手动配置网络,系统自动选择最佳路径。支持跨网络、跨地域的设备连接,突破局域网限制,实现真正的远程协作。
|
||||
|
||||
### 2.4 扩展性强:轻松支持新设备类型与未来场景
|
||||
|
||||
@@ -64,7 +69,7 @@
|
||||
|
|
||||
[ 核心层 (Core Layer) ] <- 会话管理、协议、编解码、网络抽象 (100%跨平台)
|
||||
|
|
||||
[ 传输层 (Transport Layer) ] <- RNDIS (USB)、Wi-Fi、以太网
|
||||
[ 传输层 (Transport Layer) ] <- 局域网(RNDIS/USB、Wi-Fi、以太网)、互联网(STUN/TURN/ICE)
|
||||
```
|
||||
|
||||
### 3.2 核心模块说明
|
||||
@@ -73,7 +78,7 @@
|
||||
- **会话管理**:创建、维护、销毁显示会话,支持一对多。
|
||||
- **通用协议**:基于Google FlatBuffers的跨平台序列化,定义视频帧、输入事件等。
|
||||
- **编解码器**:支持H.264(硬件加速)/VP8(软件)/MJPEG等多种编解码器,自适应选择。
|
||||
- **网络抽象**:统一管理RNDIS、WiFi等连接,提供可靠UDP传输。
|
||||
- **网络抽象**:统一管理RNDIS、WiFi等局域网连接,以及STUN/TURN/ICE互联网连接,提供可靠UDP传输。
|
||||
|
||||
2. **平台适配层(Platforms)**:各平台特有功能的薄封装。
|
||||
- **Android**:通过MediaProjection捕获屏幕,ImageReader获取帧,处理触摸输入。
|
||||
@@ -110,6 +115,13 @@
|
||||
- **角色**:安卓手机作为主机(Host),安卓平板作为客户端(Client)。
|
||||
- **价值**:充分发挥设备特性。用户可在手机上进行私密操作(如游戏、使用特定APP),而将主画面投送至平板大屏上进行展示或共享,兼顾隐私与分享需求。这充分体现了角色的灵活性——安卓设备可根据需求,自由扮演主机或客户端的角色。
|
||||
|
||||
**场景五:远程协作(跨网络、跨地域)**
|
||||
|
||||
- **描述**:用户在家中通过互联网连接到办公室的 Windows 电脑,实现远程显示扩展。
|
||||
- **角色**:办公室 Windows 电脑作为主机(Host),家中设备作为客户端(Client)。
|
||||
- **连接方式**:通过 STUN/TURN 服务器实现 NAT 穿透,自动选择最佳连接路径。
|
||||
- **价值**:突破局域网限制,支持跨网络、跨地域的设备连接。无论设备在哪里,只要有互联网连接,就能实现无缝显示协作。适用于远程办公、技术支持、远程演示等场景。
|
||||
|
||||
## 5. 技术规格与指标
|
||||
|
||||
- **支持平台**:Android 5.0+, Windows 10/11
|
||||
@@ -130,6 +142,9 @@ DisplayFlow/
|
||||
└── tools/ # 开发工具脚本
|
||||
```
|
||||
|
||||
## 7. 总结
|
||||
## 7. 技术栈
|
||||
完全由C++实现
|
||||
|
||||
## 8. 总结
|
||||
|
||||
本方案通过真正跨平台的核心设计、动态角色分配和多连接方式抽象,突破了现有副屏方案的局限性。它不仅仅是一个"副屏工具",更是一个为未来多设备协作世界打造的、极具扩展性的通用显示协作平台。该架构确保了项目在性能、灵活性和可持续性上的领先优势。
|
||||
|
||||
Reference in New Issue
Block a user