
这份源码是一个把 Android 手机画面投到电脑上、并用电脑键鼠反向控制的工具。它走 ADB(USB 或无线 TCP/IP)通道,不要求手机 root、也不会在设备上残留安装,桌面端用 C + SDL 渲染,手机端跑一个临时的 Java 服务做屏幕采集与指令回传。
源码简介
scrcpy(v4.0)是 Genymobile 开源的 Android 设备镜像与控制应用,Apache-2.0 协议。它把通过 USB 或 TCP/IP 连接的 Android 设备的画面与音频投到电脑,并允许用键盘鼠标操作设备。项目强调轻量、高性能(30~120fps)、低延迟(35~70ms)与极短启动时间,且不需要 root、不在设备上安装常驻应用、无账号无广告。代码分为桌面客户端(C 语言,app/src)与 Android 服务端(Java,server/src)两大部分,另有完整的 doc/ 使用文档。
适用场景
- 在电脑大屏上演示、操作 Android 设备进行开发调试
- 把手机画面录制为视频,或把摄像头/虚拟显示投到电脑
- 学习 C + SDL 桌面客户端与 Android Java 服务端协作的跨端架构
技术栈与运行环境
桌面端为 C 语言(app/ 用 Meson 构建,meson.build / cross_win*.txt 提供 Windows 交叉编译配置),依赖 SDL2、FFmpeg(libav*)、libusb 等;Android 服务端为 Java(server/ 用 Gradle 构建,build.gradle),通过 AIDL 调用系统服务采集屏幕与注入输入。
需 Android 设备 API 21(5.0)以上,音频转发需 API 30(11.0)以上,并开启 USB 调试。
构建说明见 doc/build.md,分平台安装见 doc/linux.md、doc/windows.md、doc/macos.md。
功能亮点
- 音视频镜像:投屏设备画面(H.264/H.265 可配),Android 11+ 支持音频转发,可限制分辨率与帧率
- 键鼠控制:电脑键盘鼠标操作设备,支持物理键盘/鼠标 HID 模拟(uhid)与 OTG 模式(无需 USB 调试)
- 录制与虚拟显示:recorder.c 将设备画面录成视频文件;支持 new-display 虚拟显示并在其中启动指定 App
- 摄像头与 Webcam:Android 12+ 可镜像摄像头,Linux 下还能经 V4L2 把摄像头当电脑 webcam 使用
- 双向剪贴板与配置化:支持双向复制粘贴、画质/窗口/快捷键等多种参数(doc/ 下 video、control、keyboard、mouse、shortcuts 等分页详述)
- 完整的客户端模块:app/src 下涵盖 screen、decoder、demuxer、controller、receiver、file_pusher、usb、uhid、v4l2_sink 等,服务端在 server/src/main/java 组织
安装与部署提示
普通用户无需编译,按 doc/ 对应平台文档下载官方发布包即可(README 强调只从本仓库获取,勿信第三方站点)。若要本地构建:桌面端用 Meson + Ninja 编译 app/,Android 服务端用 Gradle 编译 server/ 并通过 ADB 推到设备临时运行(server/build_without_gradle.sh 提供免 Gradle 脚本)。常用启动参数如 scrcpy -m1024 降分辨率、scrcpy --otg 纯控制、scrcpy --record=file.mp4 录屏。
截图与演示说明
– assets/screenshot-debian-600.jpg:Debian 下的投屏界面截图 – app/data/scrcpy.svg:项目图标(README 引用) – app/src/:scrcpy.c(入口编排)、main.c、screen.c(渲染)、recorder.c(录制)、controller.c(指令)、usb/ 与 uhid/(物理设备模拟)、v4l2_sink.c(Linux webcam 输出) – server/src/main/java/:Android 端 ScreenEncoder / Controller 等采集与输入回传实现 – doc/ 目录:connection、video、audio、control、keyboard、mouse、recording、virtual-display、otg、camera、v4l2、shortcuts 等 18 个分主题文档
常见问题
- 需要手机 root 吗? 不需要。scrcpy 通过 ADB 通道工作,仅在电脑端运行,不会在 Android 设备上安装常驻应用,也不要求 root(OTG 模式连 USB 调试都不需要)。
- 无线连接怎么用? 让设备与电脑在同一网络,先
adb tcpip 5555开启无线调试,再adb connect 设备IP:5555,然后正常启动 scrcpy 即可走 TCP/IP 镜像(详见 doc/connection.md)。
安全风险提示
特别提示:本源码未检测安全风险文件,下载后请务必进行安全审计,删除恶意代码后再部署使用!
下载说明
本源码包为 GitHub 公开仓库快照(Apache-2.0 协议),已打包为无密码 zip,含完整提交历史(.git)。
项目开源地址:https://github.com/Genymobile/scrcpy 。
下载后建议优先按 doc/ 平台文档使用官方发布包;如需研读或自编译,参照 doc/build.md 的 Meson(桌面端)与 Gradle(服务端)流程。
