前言

如果你想在电脑上使用 Android 手机进行演示教学,除了使用 Genymotion、Parallels Desktop 等虚拟机软件来运行 Android 系统外,还有另一种便捷的方法:利用像 Vysor 这样的工具将手机屏幕投射到电脑上进行显示和控制。

然而,Vysor Pro 的收费较高,而免费版则可能会受到广告的干扰。幸运的是,我们发现了一款开源免费、功能类似的安卓手机屏幕画面投屏+控制工具:Scrcpy

项目介绍

Scrcpy 是什么?

官方是这样介绍的:

Scrcpy 是一个开源的轻量高效功能强大的Android屏幕显示和控制工具,此应用通过 USBTCP/IP 连接的 Android 设备(视频和音频),并允许使用计算机的键盘和鼠标控制设备。

它不需要任何root访问权限,适用于 GNU/LinuxWindowsmacOS。,提供屏幕录制、文件传输等功能,适用于开发、演示和教学等场景。

看了上面的介绍,简而言之,就是可以让你在电脑上控制手机!它支持鼠标控制、键盘输入、电脑剪切板复制粘贴、拖放文件传输到手机、以及拖放 APK 文件进行安装。

项目地址https://github.com/Genymobile/scrcpy

image-20240306123435282

Scrcpy 实际的投屏效果非常理想,画面清晰流畅,基本无明显延迟,相比 Vysor 要付费后才能设置高码率,Scrcpy可以自定义视频码率这点显得十分良心。软件支持自动横屏,操作很灵敏,实用性非常的高。

Scrcpy 是一款命令行工具,没有图形界面,但这并不妨碍它成为一款出色好用的开源软件!其实它的使用也并不复杂。使用它你无需 ROOT 手机,也不需在手机上安装 APP,只需在系统设置里启用“USB调试”( adb 调试) 即可。连接电脑的方式可选 USB数据线连接或 ADB 无线 WiFi 连接。

使用方法

由于 scrcpy 软件功能很强大,本人并没有完全吃透,本文只是对基本使用方法进行阐述,满足日常使用,详细使用方法请移步官方介绍。本文主要以 HUAWEI MatePad 11(HarmonyOS)进行示范操作。

准备工作

  1. 准备好 USB 数据线,安卓系统版本要求 5.0 以上(HarmonyOS也行);
  2. Scrcpy 需要使用 adb 驱动进行与电脑之间通讯,Windows 版的安装包里已经包含了 adb;
  3. 需要在手机端的系统设置里开启「开发者选项」及「USB 调试」选项。不同的手机开启方法不尽相同,找不到选项的话可以自行去搜索一下。

华为平板:将手机与电脑用 USB连接, 连接方式选择传输文件,打开手机开发者模式(「设置 」==》「关于手机 」 ==》点击「版本号 」7次 ==》输入「锁屏密码」),设置内进入开发人员选项并打开USB调试功能

image-20230831200553926

Windows-有线连接

Windows 用户直接在软件发布页面下载软件包,并解压到任意路径,连接好数据线后,电脑上执行 scrcpy.exe 即可启动软件直接控制。首次连接时,手机上会问你是否允许它对设备进行调试,按下确认同意即可。

直接双击连接

或者在解压后文件所在的文件夹地址栏输入 cmd,然后在命令行输入 scrcpy,即可成功投屏你的手机;

Tip:终端执行 adb devices 命令,可以看到你的被控设备,显示 device 则表示已连接,显示 offline 则离线;执行命令 adb usb 查看是否连接成功。

💡如果嫌每次从“在当前软件包目录地址栏中输入 cmd回车打开”太麻烦,可以 配置系统环境变量 后,使用 Win + R 输入 cmd 回车进入终端窗口;

进入终端

scrcpy连接

Windows-无线连接(需数据线)

Scrcpy 使用 adb 与 Android 设备通讯,而 adb 本身是支持无线连接的。因此除了 USB 数据线之外,我们也能无线使用。前提是需要保证手机和电脑处于同一局域网 (连接到相同的 WiFi 路由器),步骤如下:

step1:准备工作

首先还是要用数据线把手机和电脑连接起来(让电脑知道连接那台设备),然后在解压后文件所在的文件夹地址栏输入 cmd 进入终端。

step2:确保相同的 Wi-Fi 网络

确保你的电脑和手机在同一wifi下,查看手机IP信息(华为手机IP查看路径为:设置 ==》 关于手机 ==》状态信息 ==》IP地址

查看IP

Tip:每个设备的IP地址查看方式有很多种

在命令行输入 ping 192.168.124.36, (:192.168.124.36需要替换为你的手机IP),若数据包发送成功,则说明在同一局域网下

ping

step3:切换模式

然后在「命令提示符」即终端中输入 adb tcpip <端口号> 命令回车,将设备从USB连接模式切换到Wi-Fi连接模式。

 .\adb tcpip 5555    # 让设备在 5555 端口监听 TCP/IP 连接

转换模式

如果看到上图中 restarting in TCP mode port: 5555 这样的提示,则表示启动成功。 手机的adbd程序会以WIFI模式重新启动,随后拔下手机;

step4:连接手机

接着通过 adb connect <IP地址><端口> 命令回车连接手机。

 .\adb connect 192.168.124.36:5555

成功

step5:启动投屏

最后终端输入 scrcpy,或者直接双击 scrcpy.exe,即可成功投屏你的设备。

平板演示

演示

说明:由于本文最早是基于笔记本和华为平板操作的,有的地方不是很完善。最近正好有空,就用手头的台式机和我的小米11重新连接操作了一下,完善了操作流程和效果演示。

如果 WiFi 较慢,可以调整码率:scrcpy -b 3M -m 800,意思是限制 3 Mbps,画面分辨率限制 800,数值可以随意调整。

如需切换回 USB 模式,执行:adb usb 命令

macOS 连接手机

Mac 用户需要使用 HomeBrew 命令进行安装。其实 HomeBrew 的功能很实用,它可以帮助你非常简单地一键安装/卸载各种软件,包括 Scrcpy。

step1:安装 homebrew

通过命令行 (Terminal) 执行 ,如已安装可跳过

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

step2:安装 Scrcpy

(如果网络太慢,可以考虑更换 Homebrew 国内源或使用代理)

brew install scrcpy

step3:安装 ADB

如果你没有安装 ADB 命令行工具,那么也可以用 brew 来安装

brew cask install android-platform-tools

step4:启动投屏

使用 USB 数据线连接手机后,执行 scrcpy 命令即可启动软件。首次连接会在手机上问你是否允许它对设备进行调试,按下确认同意即可。

如果你有多台手机连接到电脑,可以执行 adb devices 查看每一台设备对应的ID,然后执行 scrcpy -s 设备ID 来连接使用指定的设备。

Tip:由于本人手里没有苹果电脑,演示略。

Linux 编译安装:

Linux 用户可以参考官网的说明自己编译安装。

常用命令

这些参数可以多个自由组合使用,注意区分大小写。

视频

默认情况下,scrcpy 会镜像设备屏幕。

默认情况下,scrcpy 会尝试以 Android 设备分辨率进行镜像。

功能 Scrcpy 的命令参数
限制画面分辨率 scrcpy -m 1024/scrcpy --max-size=1024(比如限制为 1024)
修改视频码率 scrcpy -b 4M(默认 8Mbps,改成 4Mbps)

音频

功能 Scrcpy 的命令参数
仅音频/视频 scrcpy --no-video/scrcpy --no-audio
同步传输声音 可借助USBaudio这个开源项目实现,但仅支持Linux系统

控制

默认情况下,右键单击触发器返回(或打开电源)和中键单击回到桌面。要禁用这些快捷方式并将点击转发到设备,请执行以下操作:

 scrcpy --forward-all-clicks

要安装APK,请将APK文件(以)拖放到 scrcpy 窗口中。

功能 Scrcpy 的命令参数
裁剪画面 scrcpy -c 1224:1440:0:0表示分辨率 1224x1440 并且偏移坐标为 (0,0)
显示触摸点击 scrcpy -t在演示或录制教程时,可在画面上对应显示出点击动作
文件传输默认路径 scrcpy --push-target /你的/目录将文件拖放到 scrcpy 可以传输文件
只读模式(仅显示不控制) scrcpy -n/scrcpy --no-control

设备

功能 Scrcpy 的命令参数
关闭设备屏幕 scrcpy -S/scrcpy --turn-screen-off
防止设备睡眠 scrcpy -Sw/scrcpy --turn-screen-off --stay-awake
显示触摸点击 scrcpy -t/scrcpy --show-touches在画面上对应显示出点击动作(通过手指在设备上)
多设备切换 scrcpy -s 设备ID(使用 adb devices命令查看设备ID)

窗口

功能 Scrcpy 的命令参数
设置窗口标题 scrcpy --window-title '阿辉好棒!'
位置和大小 scrcpy --window-x=100 --window-y=100 --window-width=800 --window-height=600
无边框 scrcpy --window-borderless
窗口置顶 scrcpy --always-on-top
全屏显示 scrcpy -f/scrcpy --fullscreen
裁剪画面 scrcpy -c 1224:1440:0:0表示分辨率 1224x1440 并且偏移坐标为 (0,0)

录制

功能 Scrcpy 的命令参数
屏幕录像 scrcpy -r/scrcpy --record=file.mp4
屏幕录像 (禁用电脑显示) scrcpy -Nr file.mkv/scrcpy --no-playback --record=file.mkv

常用快捷键

成功连接之后,你就可以在电脑桌面上看到 Scrcpy 的投屏窗口和手机画面了,你可以直接用鼠标进行操作,它同时也有很多键盘快捷键可以使用。

操作 快捷键
切换全屏模式 MOD+F
向左/右旋转显示 MOD+/MOD+
将窗口大小调整为 1:1(完美像素) MOD+G
调整窗口大小以删除黑色边框 MOD+W|双击左键
😁设备 HOME MOD+H|鼠标中键
🤞设备 BACK MOD+B|+ |鼠标右键单击
设备 任务管理 键 (切换APP) MOD+S
点按 菜单 (解锁屏幕) MOD+M
点按 音量+/- MOD+/ MOD+
设备 电源键 MOD+p
点亮手机屏幕 鼠标右键单击
⭐关闭/打开设备屏幕 (但继续在电脑上显示) MOD+o/MOD+shift+o
旋转设备屏幕 MOD+r
展开/折叠通知面板 MOD+n/MOD+shift+n
😄复制到剪贴板 Ctrl+c
😄剪切到剪贴板 Ctrl+x
同步剪贴板和粘贴 Ctrl+v
注入计算机剪贴板文本 MOD+shift+v
捏合缩放 Ctrl+点击移动

TipsSuper 键通常是指 WindowsCmd 键; Mod键一般指的是 Ctrl 键.

常见问题

不了解MOD键:

MOD 是快捷键的修饰键。默认是 (左) Alt 或 (左) Super
它可以使用命令 --shortcut-mod 来修改。可选的按键有 lctrl、rctrl、lalt、ralt、lsuper和 rsuper。例如:

 使用右 Ctrl 键
 scrcpy --shortcut-mod=rctrl
 使用左 Ctrl 键 + 左 Alt 键,或 Super 键
 scrcpy --shortcut-mod=lctrl+lalt,lsuper

投屏不清晰问题

找到 scrcpy.exe 右键 > 属性 > 兼容性 > 更改高DPI设置 > 勾选替代高DPI缩放行为 > 确定应用即可;

PixPin_2024-06-20_07-27-31

连接手机只能显示无法触控

原因是你的手机安全设置屏蔽掉了usb传入的触控,解决方法:只需要在终端使用 adb 执行以下命令即可:

 adb shell pm grant (pkgname) android.permission.WRITE_SECURE_SETTINGS

总结

Scrcpy 是一款功能强大的跨平台工具,它允许用户在电脑上直接控制手机,极大地提升了工作效率和便利性。无论是进行应用测试、游戏娱乐,还是处理需要在手机上完成的复杂任务,Scrcpy 都能提供高效的解决方案,可谓是妥妥的神器!它的多场景应用能力,使得无论是开发者还是普通用户,都能从中获得实质性的帮助。

此外,Scrcpy 的开源免费特性,加上其独立易用的程序设计,使其成为大众的理想选择。支持屏幕录像和截屏的功能,进一步增强了其实用性。对于经常需要在电脑上操作手机的用户来说,Scrcpy 无疑是一个不可或缺的高效工具,非常值得推荐。

参考链接

  1. scrcpy - 手机无线投屏到电脑 - 少数派 (sspai.com)
  2. Scrcpy - 开源免费在电脑显示手机画面并控制安卓手机工具 (投屏/录屏/免Root)