做工具这件事,我一直有个很朴素的偏好:能小就别做大,能自动就别让用户多点一下。
Android 投屏也是如此。
很多时候,我们只是想把手机接到电脑上,看画面、做演示、调试设备,或者录一段操作过程。为这样一个简单需求安装体积庞大的手机助手、登录账号、等待服务启动,多少有点本末倒置。
所以我做了 MU投屏:一款面向 Windows 的迷你 Android 投屏启动器。
它基于优秀的开源项目 scrcpy,界面部分使用原生 Win32 C 编写。当前 2.3 版的 MUScrcpy.exe 只有约 144 KB。程序启动后会自动等待手机,设备一连接就开始投屏;数据线松动、手机重启或投屏进程退出,恢复连接后又会自动回来。
现在,MU投屏的源码也已经公开:
GitHub:daxiaamu/MUScrcpy

为什么还要做一个 scrcpy 启动器?
scrcpy 本身已经非常优秀:延迟低、画面清晰、无需在手机里安装额外 App,也没有账号体系。但对不熟悉命令行的用户来说,下载、配置参数和判断连接状态仍然有一点门槛。
我想做的不是重新实现 scrcpy,而是把最常用的流程整理好:
- 插上 USB,不用点“连接”,程序自己发现手机;
- 自动读取设备信息,不必再敲 adb 命令;
- 根据电脑和手机情况自动选择画质;
- 常用开关放到界面上,点一下立即生效;
- 设备掉线以后继续等待,回来后自动恢复投屏;
- 出现问题时,底部日志能告诉你程序正在做什么。
说到底,MU投屏只负责把投屏前后的琐事变简单。真正的设备控制和音视频传输,依然由 scrcpy 完成。
轻巧:主程序约 144 KB

MU投屏没有内嵌浏览器,也没有附带一整套重量级 UI 框架。界面使用原生 Win32 C 编写,并以优化、剥离符号的方式编译。最终得到的 2.3 版主程序约为 144 KB。
小体积带来的感受很直接:双击就开,界面干脆,不需要先等一个庞大的运行环境加载完成。
当然,这里的 144 KB 指的是 MU投屏自己的界面与控制程序。实际投屏还需要 adb、scrcpy 及其音视频运行库。从 GitHub 源码运行时,只要下载官方 scrcpy Windows 发布包,并把其中的文件放入程序目录下的 bin 文件夹即可。
我更愿意把功能边界说清楚:MU投屏很小,是因为它专注于启动、管理和连接体验;成熟而复杂的投屏能力,则交给成熟的 scrcpy。
截图 2|144 KB 的迷你主程序
建议画面:MUScrcpy.exe的 Windows 属性窗口,清晰显示文件大小;可与完整主界面拼成一张图。
建议文件名:images/muscrcpy-size.png
图片说明:原生 Win32 C 编写,MU投屏 2.3 主程序约 144 KB。
快速:连接后,投屏和信息读取同时开始
MU投屏打开后,不会让你先选设备、再点连接、再点开始。
程序会在后台持续检查 USB 调试设备。手机上线以后,投屏启动和设备信息读取会并行进行;型号、序列号、Android 版本、系统版本、A/B 槽位和内核版本等信息,也会通过多个后台任务同时查询。
这样做的目的并不复杂:先把画面尽快投出来,不让辅助信息挡住主流程。
界面始终可以正常响应,当前状态和 scrcpy 输出则会实时显示在日志区域。第一次使用时,即便忘记开启 USB 调试,看到“等待设备连接”的提示,也能马上知道应该检查哪里。
自动回连:拔了线,接回来继续投
自动回连是 MU投屏最核心、也是我最想强调的功能。
真实使用中,投屏很少永远一帆风顺。数据线可能被碰松,USB 接口可能短暂断开,调试中的手机也可能频繁重启。普通启动脚本在 scrcpy 退出后就结束了,下一次还要重新运行。
MU投屏会一直维护连接流程:
- 没有发现设备时,进入等待状态;
- 设备上线后,自动启动 scrcpy;
- 设备断开或 scrcpy 退出后,自动回到检测状态;
- 手机重新在线,投屏自动恢复。
整个过程不需要退出 MU投屏,也不用反复点击按钮。对刷机、系统调试、应用演示和长时间设备观察来说,这种“它自己会回来”的体验,比多几个花哨功能更实用。
截图 3|自动回连前后对比
建议画面:使用两张截图并排展示。左侧为“等待设备连接”,右侧为重新连接后的“正在投屏”;下方日志保留“准备重新连接”和“设备已连接”等记录。
建议文件名:images/muscrcpy-auto-reconnect.png
图片说明:USB 短暂断开后无需重启程序,设备恢复在线便会自动重新投屏。
五档画质,默认交给“自动”
不同电脑、手机和使用场景,对画质的要求并不一样。MU投屏提供五档选择:自动、流畅、均衡、高清和极致。
| 模式 | 参数 | 适合场景 |
|---|---|---|
| 自动 | 根据电脑处理器、内存和手机分辨率选择 | 不想折腾,日常直接使用 |
| 流畅 | 1280 / 30 FPS / 4 Mbps | 老电脑、优先稳定 |
| 均衡 | 1920 / 45 FPS / 8 Mbps | 日常操作、应用演示 |
| 高清 | 2560 / 60 FPS / 12 Mbps | 更看重清晰度与流畅度 |
| 极致 | 原始分辨率 / 最高 120 FPS / 20 Mbps | 高性能设备、高刷新率体验 |
默认的“自动”模式会参考电脑的处理器核心数、内存大小以及手机分辨率,在流畅、均衡和高清之间选择。手动切换画质后,MU投屏会自动重启 scrcpy 来应用新参数,不需要自己关掉旧窗口再重开。
如果手机编码器不支持目标帧率,scrcpy 会使用设备实际允许的最高帧率。
截图 4|五档画质选择
建议画面:展开画质菜单,完整展示自动、流畅、均衡、高清和极致五个选项。
建议文件名:images/muscrcpy-quality.png
图片说明:默认自动匹配,也可按设备性能和使用场景手动选择画质。
不堆功能,只保留投屏时真正会用的
除了连接和画质,MU投屏还提供了几项常用能力:
- 保持亮屏:投屏期间避免手机自动休眠,并记住上一次选择;
- 投屏置顶:让手机画面保持在其他窗口上方;
- 兼容模式:遇到渲染或音频兼容问题时,改用软件渲染并关闭音频;
- 熄屏检测与一键点亮:发现手机熄屏后,在电脑端直接发送点亮指令;
- 窗口自动贴靠:scrcpy 窗口自动靠在控制界面旁边,并维持横向相邻;
- 实时日志:显示设备等待、投屏启动、参数切换和重新连接过程。
更改画质、兼容模式、保持亮屏或投屏置顶时,程序会自动重启 scrcpy 让设置生效。用户只负责选择,剩下的流程由 MU投屏完成。
截图 5|设备信息与快捷功能
建议画面:突出设备信息卡片、保持亮屏、投屏置顶、兼容模式,以及熄屏后的“点亮屏幕”按钮。
建议文件名:images/muscrcpy-features.png
图片说明:常用状态与开关集中在一个界面,不需要记忆 scrcpy 和 adb 参数。
从 GitHub 开始使用
MU投屏源码现已公开在 GitHub:
https://github.com/daxiaamu/MUScrcpy
从源码仓库运行的步骤很简单:
- 下载官方 scrcpy Windows 版本;
- 在 MU投屏程序目录创建
bin文件夹; - 将 scrcpy 发布包中的全部文件放入
bin; - 确认
bin\adb.exe和bin\scrcpy.exe存在; - 手机开启 USB 调试并连接电脑,然后运行
MUScrcpy.exe。
想自己编译也不复杂。安装 MinGW-w64 后运行仓库中的 编译c.bat 即可,核心源码集中在 start_scrcpy_c.c,界面图标和版本信息位于资源文件中。没有庞大的工程结构,阅读和修改都比较直接。
如果你在使用中遇到问题,或者对功能有建议,欢迎通过 GitHub 仓库反馈。也欢迎对原生 Windows 开发、adb 或 scrcpy 感兴趣的朋友查看实现。
写在最后
MU投屏不是手机管家,也不打算成为一个塞满功能的平台。
它想做好的事情只有一件:用尽可能轻巧的方式,让 Android 手机快速出现在 Windows 桌面上,并在意外断开之后自己回来。
144 KB 的原生主程序、自动检测、连接即投、断线回连,再加上几项真正实用的设置——这就是 MU投屏现在的样子。
项目还会继续完善。如果它正好解决了你的投屏需求,欢迎到 GitHub 点个 Star,也欢迎把问题和想法留在仓库里。
项目: MU投屏
版本: 2.3
作者: 大侠阿木
源码: github.com/daxiaamu/MUScrcpy
更新页面: optool.daxiaamu.com/muscrcpy
开源基础: Genymobile/scrcpy
发表回复