说真的,现在提到"把手机画面投到电脑上",很多人第一反应还是装个某某手机助手、用微信文件传输助手,或者打开各家手机品牌自带的"多屏协同""智慧互联"。这些方案我不是说不能用,但如果你是个开发者、测试,或者哪怕只是想把手机画面录屏录得干净点、延迟低一点,大概率都会被这些工具气到——要么画质糊成一团,要么延迟飘到没法看,更别提想用电脑键盘鼠标操控手机时那种明显的"隔了一层"的拖拽感。
我日常做的很多工作都绕不开安卓设备调试,从真机到各种开发板,从无线设备到多台手机同时跑自动化。过去几年我用得最顺手、几乎每天都在敲的一个组合就是 adb 加上 scrcpy。这套东西看起来名字不起眼,却是真正把我从"手机和电脑来回倒腾"里解放出来的方案。这篇内容我打算写透它:如果你完全没接触过,可以把它当成零基础入门手册;如果你已经装过、但被各种报错卡住过,那后半段的排查链路应该能帮上忙。
1. 为什么投屏偏偏要选 adb 和 scrcpy 的组合
1.1 手机投屏的几种主流路线,其实都各有毛病
先掰扯一下市面上的投屏方案。第一种是各大手机品牌自家的多屏协同,比如某为的多屏协同、某米的有线投屏、某星的 Samsung DeX。它们做得确实不错,但最大的问题在于绑定:只支持自家手机,而且往往需要特定型号的电脑、特定版本的驱动,甚至要连着同一个账号生态。你换个品牌的手机插上去,基本等于不认。
第二种是通用无线投屏协议,比如 Miracast、AirPlay 或者各种"传屏助手"。这类方案用 Wi-Fi 直连,胜在方便,iOS 和安卓都有对应生态。但痛点也很明显:延迟不可控,打游戏、看视频、做演示画质都会打折;而且只能"投",不能反向控制,电脑想点一下手机屏幕?对不起,做不到。
第三种是各类第三方远程控制工具,比如 TeamViewer、向日葵、AnyDesk 的移动端。这类工具确实能远程操作手机,但商业授权、画质压缩、网络依赖这些限制非常现实。尤其是做自动化测试的同学应该深有体会——这类工具根本没法做到毫秒级的画面回传和精准的输入模拟。
1.2 adb 是安卓调试的地基,scrcpy 是站在它肩膀上的投屏方案
adb 全称是 Android Debug Bridge,是安卓官方提供的一条调试通道。它走 USB 或者 TCP/IP 连接安卓设备,通过这个通道,你可以执行的指令远超"看个屏幕"这个范畴:装应用、拉取日志、模拟触摸、修改系统设置、查看电量统计,这些都是 adb 的看家本领。
scrcpy 从名字上就体现了它的路子:Screen Copy,它把屏幕内容复制到电脑上展示。但关键在于,它不搞私有的插件,不要求在手机上装 APK,而是完全复用安卓系统里一条成熟的通道——adb 桌面端守护进程和手机上的 adbd 服务进行通讯,然后通过内部机制把屏幕画面实时编码后传回电脑端。换句话说,只要你的手机能正常连上 adb,scrcpy 就一定能跑起来,不挑厂商、不挑系统版本、不需要 root。
我经常用一个类比来跟同事解释:如果安卓手机像一栋房子,那 adb 就是房子内部已经建好的一条员工通道,物业本来就给你留了门禁;而 scrcpy 只是这条通道上开了一个专门的窗口,让你在楼外面就能看到屋里的实时监控画面,甚至隔着窗户递个东西进去。正因为走的是官方通道,所以它安全、可控、延迟低。
1.3 为什么我长时间留下来的原因是三个字:足够快
论绝对画质,scrcpy 可能不一定比得过某些厂商的私有投屏协议;但论综合体验,它几乎是我用过最平衡的方案。它默认在传输过程中走的是 H.264 硬件编码,电脑端解码也走硬解,所以延迟可以控制在 30ms 到 50ms 之间。这个数字意味着什么?你拿鼠标在电脑屏幕上点一下,手机屏幕几乎同时就有反应,肉眼根本感觉不到中间有一个"网络传输"的存在。
而且它开源,Windows、macOS、Linux 全平台可用。同一套操作逻辑,我在公司用 Ubuntu 连开发板,在家用 Windows 连手机,命令几乎不用改。这一点,对于像我这种涉及多平台工作的开发者来说是真正能"留下来"的理由。这也是为什么我在各种场景下反复推荐大家直接走 adb + scrcpy 这条路线,而不是绕道去装各种第三方工具。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 动手前必须配好的 adb 环境和手机端设置
你可能会觉得,既然是 scrcpy 投屏,为什么先扯半天 adb?因为我在实际帮人排查问题时发现,绝大多数报错不是 scrcpy 本身的问题,而是 adb 没配好、手机端调试没开对,或者电脑和手机之间的连接压根没建立起来。所以这一节先把地基打牢。
2.1 下载 Platform Tools 并配置环境变量
adb 是 Android SDK 自带的工具。如果你装了 Android Studio,那么 adb 已经存在于本机了,一般在 SDK 安装目录下的 platform-tools 文件夹里。但如果你只是单纯想投屏、做做自动化,没必要装一个好几 GB 的 IDE,直接下载独立的 Platform Tools 更轻量。
Windows 用户可以去 Android 开发者官网下载 Windows 版本的 platform-tools-latest-windows.zip,解压到一个不容易被误删的目录,比如 C:\adb。macOS 用户可以用 Homebrew:
bash复制brew install android-platform-tools
Linux 用户如果是 Debian/Ubuntu 系,直接 sudo apt install adb 就行,或者下载 Linux 版 Platform Tools 手动解压。
下载完成后,关键一步是把 adb 所在的目录加入系统的 PATH 环境变量。Windows 上这个步骤是:右键"此电脑" → 属性 → 高级系统设置 → 环境变量 → 在"系统变量"里找到 Path → 新建 → 填入你解压的目录路径。完成后重新打开一个新的终端窗口(注意,旧窗口不会自动刷新环境变量),输入:
bash复制adb version
如果输出类似 Android Debug Bridge version 1.0.41 这样的信息,说明 adb 已经被系统正常识别。之所以要配置环境变量,是为了后续你可以在任意目录下直接敲 adb 命令,而不是先 cd 到 platform-tools 目录里才能运行。这个小步骤决定了你后面所有操作是不是顺手。
2.2 手机端开启 USB 调试的完整细节
手机这端的操作容易被忽略,但恰恰是最容易出问题的环节。以常见的安卓系统为例:打开"设置" → "关于手机" → 连点 7 次"版本号",直到系统提示"已进入开发者模式"。然后回到设置首页,进入"开发者选项",打开"USB 调试"开关。
这里有个细节是很多人不知道的:不同设备的入口名称略有差异,比如部分原生安卓系统叫"开发者选项",MIUI 叫"开发者选项"但需要登录小米账号才能开启"USB 调试(安全设置)";部分电视盒子、开发板或者儿童手表上,有些特殊型号需要厂商的校验码工具才能打开 adb 调试,比如网上流传的"小天才 adb 校验码网站""xtc 校验码计算器"这类东西,就是厂商在开发者选项前额外加了一道门禁。
但无论入口在哪,核心逻辑是一样的:手机必须允许电脑通过 adb 协议访问它。当你第一次用 USB 线把手机连到电脑,并执行 adb devices 时,手机屏幕上会出现一个"是否允许 USB 调试?"的弹窗,勾选"始终允许使用这台计算机进行调试"并点击允许。这一步漏掉的话,后面所有操作都是白搭。
2.3 验证 adb 连接状态:成败的第一个信号
打开终端,连接手机后输入:
bash复制adb devices
返回结果的第二列应该显示 device,而不是 unauthorized 或者 offline。
code复制List of devices attached
0123456789ABCDEF device
如果显示 unauthorized,说明手机端那个弹窗你没点允许,或者点错了。处理方法是拔掉 USB 线重新插一次,再次确认弹窗,或者执行 adb kill-server 再 adb start-server 重试。如果显示 offline,说明驱动或线材有问题,这个我在后面的排查章节会详细展开。
很多人在这一步就开始急躁了,觉得"我明明连上了呀"。实际上 adb devices 输出的是设备状态的完整快照,它比任何投屏工具都更早暴露你整个链路有没有打通。所以每次我用 scrcpy 前,都会习惯性先敲一遍 adb devices,确认状态栏没问题再开始——这是个看起来多余、但其实能省下排查时间的好习惯。
3. scrcpy 的安装和第一次投屏实操
3.1 各平台安装 scrcpy 的方式
scrcpy 的官方 GitHub 仓库发布页提供了 Windows 的免安装压缩包,这是最省事的方式。下载 zip 包解压后,你会在目录下看到 scrcpy.exe、adb.exe 以及一堆 DLL 文件。注意,这一步很关键:因为 scrcpy 的 Windows 包里会自带一个 adb.exe,为了避免它和你系统里的 adb 版本冲突,建议把压缩包里的内容解压到和 Platform Tools 同一级别、但分开的文件夹,比如 C:\scrcpy。然后同样把 C:\scrcpy 加入 PATH,或者每次运行直接进入目录执行。
macOS 用户可以用 Homebrew:
bash复制brew install scrcpy
Linux 用户,Debian/Ubuntu 系:
bash复制sudo apt install scrcpy
不过 Linux 发行版的软件仓库版本往往落后最新版,如果你需要新的功能特性,推荐直接从官方 Releases 页面下载编译好的二进制包,或者用源码编译。源码编译相对繁琐,需要 meson、ninja、ffmpeg 依赖,但好处是能拿到最新性能优化。一般情况下不折腾源代码,直接用发行版仓库版本已经够用了。
3.2 第一次投屏的完整流程演示
假设你已经完成了上面的 adb 配置,手机也通过 USB 线连上了电脑。现在打开终端,按顺序执行:
adb devices—— 确认设备状态为device。- 直接输入
scrcpy并回车。
屏幕上应该很快出现手机镜像窗口。如果你看到窗口弹出,说明整个链路已经通了。默认情况下,scrcpy 会以手机原始分辨率显示窗口,你可以直接用鼠标操作手机屏幕,键盘敲击也能输入文字(中文输入法也支持)。要退出投屏,直接关闭窗口,或者按 Ctrl+C(macOS 上是 Cmd+C)。
如果你希望窗口自适应电脑屏幕,可以加上 -m 参数限制分辨率宽度,比如:
bash复制scrcpy -m 1024
这个参数适合电脑屏幕较大的场景,保证投屏窗口不至于占满整个显示器。如果你希望竖屏显示,可以加 -s 指定设备方向,或者用快捷键 Ctrl+方向键 切换。第一次跑通之后你就明白为什么我一直强调"先配好 adb",因为整个 scrcpy 的启动过程几乎不需要任何额外配置,只要 adb 通,它就通。
3.3 常用基础参数与快捷键
scrcpy 的默认行为已经非常接近"零配置可用",但它提供的参数非常丰富。下面我挑出日常使用频率最高的几个基础参数:
-s <serial>:指定设备序列号。当同时连接多台设备时,必须用这个参数指定到底控制哪一台。序列号可以通过adb devices查看。-b 8M:设置视频码率。默认是 8M,越高画质越好,但无线连接时延迟会相应增加。调低到 2M 可以明显降低带宽占用。--max-fps 30:限制帧率。如果你只是看界面、做简单操作,30 帧足够;高帧率会占用更多 CPU。-f:全屏运行。-t:禁用手机端屏幕的触摸输入,只在电脑端操作,适合某些演示场景。-S:投屏启动时自动关闭手机屏幕(但电脑上仍可操作),这个参数很实用,因为它能降低手机功耗,同时防止误触。
快捷键方面,Ctrl+O 是旋转屏幕方向,Ctrl+H 是回到桌面,Ctrl+M 是返回键,Ctrl+Z 是打开最近任务,Ctrl+C 在投屏窗口内复制手机上的文本内容,Ctrl+V 粘贴到手机。这些快捷键用熟了之后,整套操作起来就像在用一台连着手机屏幕的桌面系统,非常顺手。
4. 进阶操作:无线投屏、多设备控制与实时调试
4.1 无线投屏的两种姿势
很多人以为 adb 投屏必须一直插着 USB 线,其实不是。adb 本身就支持 TCP/IP 模式,一旦手机通过 USB 暴露一个网络端口,之后就可以拔掉线,走局域网连接。
最常见的无线连接流程是:
- 用 USB 先连一次手机,确保
adb devices能看到设备。 - 执行:
bash复制
这条命令会让手机开启一个监听 5555 端口的无线调试服务。adb tcpip 5555 - 查看手机在局域网内的 IP 地址,可以在"设置"里看,也可以用
adb shell ip addr show wlan0查询。 - 拔掉 USB,执行:
bash复制
这里替换成你手机的实际 IP。adb connect 192.168.1.100:5555 - 再次执行
adb devices,应该能看到设备的序列号变成192.168.1.100:5555且状态为device。 - 直接运行
scrcpy就能走无线投屏。
安卓 11 及以上系统还支持无线调试配对模式,在"开发者选项"里开启"无线调试",用配对码在电脑端 adb pair 即可,这种方式甚至不需要先插 USB。但说实话,从稳定性角度,如果现场条件允许,我仍然推荐先用 USB 建立一次连接,再切到无线。因为很多老旧路由器在局域网高带宽场景下丢包非常严重,首次用无线连不上时很难判断是配对问题还是网络问题。
实际体验中,无线投屏的延迟受网络环境影响明显。在同一台路由器下,5GHz 频段能跑出接近 USB 的延迟;如果是 2.4GHz 频段,或者路由器设备稍多,画面就可能出现可感知的卡顿。我的建议是:日常固定办公场景坚持用 USB,会议演示或者临时要看手机内容时再用无线。
4.2 同时控制多台手机怎么做
做自动化测试或者多开挂机的朋友可能会需要同时连接多台手机。scrcpy 默认连接所有 adb devices 里可见的设备,但这样会打开多个窗口,且每个窗口都默认控制第一台设备。正确做法是用 -s 参数显式指定:
bash复制scrcpy -s 0123456789ABCDEF
有两台设备就开两个终端窗口,分别指定不同序列号。如果你觉得命令行开多个窗口太麻烦,可以直接用 scrcpy 提供的图形化管理工具 scrcpy-console(部分发布包自带),或者自己写一个简单的启动脚本,遍历 adb devices 输出,为每个序列号启动一个 scrcpy 进程。稍微封装几行 shell 脚本就能实现"一键盘启动全部手机投屏",这个技巧在实际工作中非常节省时间。
不过需要提醒的是,同时投屏多台手机对电脑的 CPU 压力不小,因为每路画面都需要独立的解码和渲染。特别是当手机本身分辨率很高、又锁在最高帧率时,多开几路很容易把笔记本的核显跑满。我的建议是,多开场景下用 --max-fps 30 和 -m 1024 限一限分辨率与帧率,体验会顺滑很多。
4.3 不止是投屏:scrcpy 依赖 adb 的扩展能力
scrcpy 能做的其实不止"把手机屏幕搬到电脑上",它还自带一套 Android 内部 API 的调用能力。比如你在开发调试时经常要执行 adb shell dumpsys batterystats --enable full-wake-history 这类命令来分析耗电,或者用 adb shell input tap x y 自动化点击屏幕——scrcpy 本身不处理这些,但它把 adb 这个通道的潜力完全打开了。你在电脑上看到的手机画面,本质上就是实时系统状态的镜像,这个镜像配合 adb 的命令行控制能力,几乎可以覆盖从应用开发、真机测试到演示录制等所有场景。
很多做游戏辅助或者模拟器脚本的人会问:能不能用 adb 控制模拟器里的游戏?答案是完全可以。因为模拟器本身对电脑来说就是一个 adb 设备,adb devices 能看到模拟器的序列号,scrcpy 甚至也可以投屏模拟器。你完全可以用 adb 的命令去模拟触摸、点击、滑动,运行游戏、做自动化挂机脚本,这套体系在真机和模拟器上都是通用的。
5. 连接失败高频报错排查:从 unauthorized 到系统找不到指定文件
写这篇文章时,我特意去翻了下各大社区和搜索引擎里围绕 scrcpy 的热词,出现频率最高的几个报错几乎我都遇到过。这里挑出几个典型场景,把完整排查链路写出来。
5.1 adb unauthorized 的完整解决路径
这个报错非常经典。执行 adb devices 后,设备状态显示 unauthorized,说明电脑端 adb 尝试访问手机,但手机端没有确认授权。完整排查链路如下:
- 确认手机屏幕是否亮起,是否有"允许 USB 调试吗"弹窗。如果弹窗超过几秒自动消失,可能是手机端的 USB 调试授权时间短,需要拔线重插,或者进入"开发者选项" → "撤销 USB 调试授权",然后重新插入。
- 换 USB 接口。不要小看这一步,有些笔记本的前置 USB 接口供电不稳,会导致手机反复重新掛载 USB,弹窗刚出来就被断开。
- 换数据线。这一步尤其关键。很多"能充电但不能传数据"的线材,在 Windows 设备管理器里根本没被识别为正确的 COM 口或 ADB 接口,
adb devices就会一直报 unauthorized 或 offline。 - 重启 adb 服务。执行
adb kill-server,然后adb start-server,再用adb devices重新检查。
如果以上四步都没解决,大概率是驱动问题。Windows 上建议去设备管理器里看一下"便携设备"或者"通用串行总线设备"下面是否出现了带黄色感叹号的设备。如果有,右键更新驱动,选择自动搜索,或者手动安装手机厂商的 USB 驱动。这一步我帮同事处理过多次,很多人的线材和电脑都没问题,就是 Windows 的驱动缓存出错导致授权一直失败。
5.2 adb: createfilew 'nul' failed: 系统找不到指定的文件
这个报错最近在社区里出现的频率挺高。它本身的含义是 Windows 下 adb 在创建空文件 nul 时失败,通常不是 adb 本身坏了,而是当前终端的工作目录没有写入权限,或者被某些安全软件拦截了。常见场景是你在 C:\Windows\System32 下执行 adb 命令,而当前用户没有该目录的写权限。
解决方法也很简单:换一个你有完全控制权的目录执行命令,比如新建一个 C:\adb_work 文件夹,先 cd 进去再运行 adb 相关命令。或者,右键终端选择"以管理员身份运行"。这个报错本身不涉及手机端问题,所以只要你换了干净目录,基本立刻消失。
这里还想多说一句:很多人遇到 bug 第一反应是重装工具,但其实这种环境类报错跟 adb、scrcpy 的版本无关,重装毫无意义。先看提示信息里的路径、权限,大多数问题都能快速定位。
5.3 检测基座失败:手机无响应怎么处理
"15:39:50.689 手机无响应?请检查:1. 基座是否已成功安装并在手机上启动 2. adb" 这类提示,我收到的咨询里见得太多了。这通常不是 scrcpy 的报错,而是某个自动化工具或者游戏框架在检测 adb 服务时给出的提示。它本质上在说:工具找不到可用的 adb 设备,或者 adb server 没有成功启动。
排查思路分为两步。第一步,单独打开终端,执行 adb devices,看设备是否在线。如果这一步都不通,说明问题出在 adb 层,按前面 5.1 的链路排查。第二步,如果 adb devices 正常,但那类工具仍然报"手机无响应",大概率是工具自身内置的 adb 版本和手机系统不兼容,或者工具的可执行文件目录里缺少 adb 环境。这种情况下,把系统 adb 的完整路径配置到工具的设置里,基本能解决。
另外,这类工具中提到的"基座",我猜是指某个 APK 辅助程序(很多游戏框架都需要先在手机上装一个 DDL 注入器或基座 APK)。如果提示基座安装失败,你要单独用 adb 手动安装这个 APK:
bash复制adb install xxx.apk
看到 Success 后再回到工具重新连接,就能绕开一些自动化工具在安装环节的权限问题。
5.4 老设备、开发板和其他特殊设备的 adb 打开方式
社区热词里还有"老款创维如何打开 adb""泰山派识别到 RK3566 但是是 adb 设备"这些。这提醒我们,adb 的适用场景远不止手机。很多智能电视、电视盒子、开发板、车机,都是 Android 系统,都支持 adb 调试。但它们的开发者选项入口可能藏得很深,即使打开了,驱动也可能不被 Windows 自动识别。
以部分老款创维电视为例,开启 adb 需要进入"设置" → "关于" → 连续点击版本号,进入开发者模式后,再找到"ADB 调试"开关。但电视系统没有 USB 调试弹窗界面,所以连接后 adb devices 会一直显示 unauthorized。这种情况的解法比较复杂,一般需要根据电视的具体系统版本找对应厂商的调试方案。对 RK3566 系列开发板来说,通常不需要打开什么开发者模式,板子自带的固件天生开启 adb,直接 adb devices 就能看到设备描述为 rk3566。但要在 Windows 上正确识别,必须安装 Rockchip 的 USB 驱动,否则设备管理器里显示的还是未知设备。
我的经验是:遇到非手机类设备,先确认厂商有没有提供专门的 USB 驱动,再确认设备的 adb 服务是否默认开启。不要一上来就怪 scrcpy 不好用,90% 的问题出在驱动和 adb 连接上。
6. 画质、延迟和 CPU 占用:进阶调参的心得
6.1 延迟到底从哪里来
scrcpy 的延迟链条其实不复杂:手机采集画面 → H.264 编码 → 通过 adb 传输 → 电脑解码 → 渲染显示。每一个环节都可能成为瓶颈。
- 采集环节:手机屏幕刷新率、系统录屏服务本身的性能,决定了源头帧率。大多数手机的系统录屏最高也就 60fps。
- 编码环节:默认走硬件编码,速度和画质都很好;但部分设备或特定分辨率下,可能自动切到软件编码,延迟会明显升高。
- 传输环节:USB 传输的延迟几乎可以忽略不计;无线的延迟则取决于路由器、信号强度和带宽。
- 解码渲染环节:电脑端 GPU 硬解速度决定最终输出。老旧的办公笔记本如果只有核显,解码 1080p 都有压力,画面自然就卡。
理解了这条链路,你就知道调参应该朝哪个方向努力了:要么降低分辨率、要么降低帧率、要么降低码率。三者都是通过减少数据量来缩短传输和解码时间,但换来的是画质损失或流畅度下降,没有一个参数是完美的,都要根据场景取舍。
6.2 我常用的两套调参方案
日常办公投屏,我推荐:
bash复制scrcpy -m 1600 --max-fps 60 -b 12M
这套参数保证画质细腻、帧率跟手,适合看视频、写演示、日常操作。如果你的电脑解码能力一般,可以把 -m 降到 1280,--max-fps 降到 30,体感差异不大。
远程办公或者用无线连接时,我推荐:
bash复制scrcpy -m 1024 --max-fps 30 -b 4M -S
这套参数把分辨率限制在 1024 宽度、码率砍到 4M、帧率限到 30,同时启动时自动关闭手机屏幕(-S),降低手机发热和耗电,又保证网络传输不卡。4M 码率下,文字的锐利度确实会差一点,但滚动、点击的顺畅度反而更好,因为数据量小,网络波动的影响变小了。
6.3 压榨性能的冷门参数
除了上面这些常用参数,scrcpy 还有一些冷门但实战中很管用的开关。
--no-audio 可以关闭音频回传,如果你只是看屏幕画面,不需要声音,关掉音频能省掉一路流媒体的编解码开销。--crop 720:1280:0:0 可以只投屏屏幕的指定区域,比如只截取游戏画面正中间区域,这个在某些隐私保护场景下很有用——开会演示时,你可以只露出想给别人看的那一块,而不是整个屏幕。--turn-screen-off 等价于 -S,但它能配合 --lock-video-orientation 一起使用,保证手机锁屏时电脑端的画面方向不会乱跳。
如果电脑端解码仍然吃力,可以尝试:
bash复制scrcpy --render-driver=opengl
或者试试将视频编解码换成软件模式:
bash复制scrcpy --video-codec=h264 --video-encoder=
这两个参数都是把解码/编码的重任放到 CPU 上,虽然会提高 CPU 占用,但某些核显驱动不完善的老电脑上,反而比硬解更流畅。遇到画面绿色、花屏、闪烁时,第一优先级不是改这些参数,而是先去官方 GitHub 的 Issues 里翻一下对应 GPU 驱动的已知问题——这类问题多数是驱动兼容性,不是 scrcpy 本身的 bug。
7. 那些 scrcpy 背后值得借鉴的工程思路
我用了很长一段时间的 scrcpy,越用越觉得这个项目值得推荐的地方不只是它"能用",而是它的工程思路很干净。它没有花样繁多的界面,没有遥测,没有后台服务,没有要你注册账号的流程,一切功能都干干净净地暴露在命令行参数里。这种克制,反而让它在面对复杂真实环境时异常稳。
我自己的开发工作中,也把 scrcpy 作为了"低成本真机调试"的基础设施。比如我做多设备自动化测试时,写一个脚本动态生成 N 个 scrcpy 窗口,再配合 adb shell input 系列命令做点击验证,整个测试过程的观察和操作都能在电脑上完成,不用在一堆手机之间来回摸屏幕。这在过去是不可想象的效率。
还有一点我觉得非常良心:scrcpy 支持把投屏录像保存到电脑本地,不需要额外的录屏工具。你可以用 scrcpy --record file.mp4 在投屏的同时录制视频。这意味着你可以一边讲演示,一边就把操作过程录下来了,省掉屏幕录制软件的授权费,也省了后来再做画质压缩的时间。
如果你只想要一个结论,那我建议你跟着上面第 2、3 节的步骤走一遍,先在自己的电脑上把 scrcpy 跑通,再根据实际场景调参。第一次成功打开镜像窗口的瞬间,你会觉得这半小时花得值。
