-
Notifications
You must be signed in to change notification settings - Fork 8
Architecture
星冉 edited this page Jul 21, 2026
·
1 revision
This documentation group defines Screen Remote's stable system boundaries and explains how a remote-control session moves from configuration through cleanup. Directory names are navigation aids; source code, tests, and build configuration remain the current sources of truth.
- Module Map and Boundaries: repository boundaries, the five code layers, dependency direction, code placement, and architecture principles.
- Runtime Main Path: ADB, server startup, sequential socket connection, metadata, decoders, and cleanup.
- Session State and Events: session state, component snapshots, events, and diagnostic projections.
- Session Configuration and Connection Lifecycle: boundaries among persisted configuration, device capabilities, connection candidates, and runtime facts.
- A session is the ownership boundary of the remote-control runtime. Low-level components and UI must not maintain competing session truths.
-
coreprovides stable models and foundations,infrastructureimplements technical capabilities,featureorganizes user scenarios,servicecoordinates system lifecycle, andappperforms assembly. - ADB provides the device channel and command capabilities; scrcpy starts and maintains a remote-control session on top of them.
- Configuration, device capabilities, and facts from the current run are represented separately.
- Logs, monitoring, and statistics consume formal states and events; they do not become a second state machine.
- scrcpy video, optional audio, and control sockets must be connected sequentially, never concurrently.
- Before adding or moving code, use the ownership decisions in the module map.
- When changing session flow, follow the runtime path and verify symmetry across startup, failure, and cleanup.
- When changing state models, check events, component snapshots, UI projections, and tests together.
- When changing connection strategy, distinguish persisted configuration, candidates, transport identity, and the current attempt.
This page is a stable entry point only. Concrete classes and flow details belong to their subject pages so that the same fact is not copied across multiple documents.
- Overview / 总览
- Quick Start / 快速开始
- Connection & Pairing / 连接设备与配对
- Session Management / 会话管理
- Remote Control / 远程控制
- Settings / 设置
- Management Features / 管理功能
- FAQ / 常见问题
- Overview / 总览
- Technical Index / 技术文档索引
- Audit Checklist / 初始化与更新清单
- Conventions / 文档维护约定
- Architecture / 架构
- Module Map / 模块地图与边界
- Runtime Path / 运行时主链路
- Session State / 会话状态与事件
- Session Lifecycle / 会话配置与连接生命周期
- ADB, USB & Wireless / ADB、USB 与无线
- ADB Lifecycle / ADB 连接生命周期
- Pairing / 设备配对与无线调试
- Codecs / 编码与解码
- Remote Interaction / 远程交互性能与悬浮菜单
- Clipboard / 剪贴板同步
- Management / 管理功能
- Events & Shell / 事件、监控与 Shell
- Logging / 日志系统与维护
- Troubleshooting / 分层排障方法
- UI Design / UI 设计系统
- Bilingual Copy / 双语与文案
- Remote UI Analysis / 远程 UI 布局分析
- Engineering Rules / 工程与验证规则
- External Research / 外部研究与取舍
Technical topics appear here only after their page-level audit is complete. / 技术主题仅在完成逐页审核后加入侧边栏。