↔
双端对照
不把 C 客户端和 Java 服务端分开讲,而是逐字节追踪它们如何在同一条协议上会合。
scrcpy 的命令行看起来很直接:连接 Android 设备,弹出一个窗口,然后就能看、能听、能控制。但源码里的真实问题远比“截屏后通过 ADB 发送”复杂:谁主动建立 socket?为什么一份视频包可以同时送给屏幕和录像器?设备旋转时如何不中断进程?音频生产者和声卡消费者时钟不一致时为什么不能简单丢帧?鼠标输入为什么有三条完全不同的后端路径?
这套文档不重复官方使用手册,而是回答这些实现层的问题。你会沿着一条完整链路阅读:
源码基线来自 Genymobile/scrcpy v4.1。本站是独立学习资料,不是官方文档。
app_process、shell 身份、隐藏系统服务与输入注入的人;从阅读路线开始,或直接进入第 1 章:全局架构。