全面掌握安卓手机投屏与游戏利器Scrcpy:终极命令行操作指南
Scrcpy是一款运行于PC的投屏软件,通过USB或TCP/IP网络连接安卓设备,能用PC的键盘和鼠标操作设备,实现多媒体播放,会议演示、音视频的录制、玩游戏、文件传输、远程技术支持等功能。软件支持自动横竖屏,延迟小画质高。
由于并非是安卓虚拟机,所以不存在性能损失。投屏画面默认以H.264视频流输出至电脑(可自定义视频编码),再加上延迟小,这就可以将PC的大显示器作为手机的延申了,即可用于娱乐,也可当作生产力工具。
最关键的是,实现这一切无需ROOT,也不会在设备上安装任何软件、堪称好玩办公神器。
Scrcpy 支持 Windows,Linux 和 macOS。
官方下载:GitHub - Genymobile/scrcpy: Display and control your Android device
国内下载:Scrcpy-win32/64-v2.3.1
QtScrcpy 国内下载:QtScrcpy 2.1.2
网上的Scrcpy的教程很多,笔者把 Scrcpy 的英文官方手册和命令行的帮助文档全部翻译成了中文,力争写出一篇最懵逼最详细的中文命令行用法手册。
本文会随着 Scrcpy 版本的更新而同步更新。目前的版本号为2.3.1,更新于2023年12月。
Scrcpy的特性:
● 轻量级:原生代码、仅在PC上显示安卓设备的屏幕
● 性能:30~120fps,取决于设备
● 图像质量:分辨率1920×1080或更高
● 低延迟:35~70ms
● 启动时间短:最快1 秒内即可显示第一帧
● 非侵入性:不会在安卓设备上安装任何程序
● 用户权益:无账号,无广告,无需联网
● *:免费和开源软件
Scrcpy的功能:
● 将Android 设备的音频转发到电脑(Android 11+)
● 在电脑上录制Android 设备的图像和声音
● 在Android 设备屏幕关闭的情况下镜像(投屏)到PC
● 双向复制粘贴
● 可配置的音频和视频质量
● 可镜像设备的摄像头(Android 版本 12+)
● Android 设备屏幕作为网络摄像头(V4L2)(仅限 Linux)
● 物理键盘/鼠标模拟 HID
● OTG 模式
● 以及更多......
运行Scrcpy的先决条件:
● Android 设备至少需要 API 21 (Android 5.0)。
● 音频转发需要 API >= 30 (Android 11+)。
● 确保你的设备打开了“USB调试“,如果存在还要启用“USB调试(安全设置)”。
● 在OTG模式下运行Scrcpy不需要打开USB调试。
Scrcpy用户手册
-------- 连接 --------
可以使用 USB 线缆有线连接设备,也可以通过 WIFI无线连接设备。
名词解释:如无特指,以下的“设备”均是指 Android 设备,比如手机和平板。
USB 有线连接手机/平板的准备工作
1、打开“USB调试”,不同的手机位置不同。比如华为是点击设置→系统→关于手机→在“版本号”上连续点击7次,再进入设置→系统→开发人员选项,打开“USB调试”和“仅充电模式下允许ADB调试”。如果存在“USB调试(安全设置)”也要打开。
2、用USB线连接设备和电脑,如果设备弹出“是否允许USB调试”对话框,勾选“始终允许”,“确定”。
3、在手机弹出框中选择“传输照片”或“传输文件”。
4、进入设备管理器,确保在 Android Phone(也可能叫“便携设备”)之下的 ADB 设备正常无问号。否则需要想办法打上驱动。对于华为手机,可以安装手机助手HiSuite。
选择设备
如果电脑只连接了一台设备,不带参数运行 scrcpy 会将该设备投屏(也称镜像)到电脑:
scrcpy
但若电脑连接了多个设备(比如1个手机和1个平板),则必须用以下4种方式之一指定要投屏(或进行其它操作)的设备:
1、通过设备的序列号
运行 adb devices 可查看设备的UUID;加参数 -l (小写的 L)可列出设备型号。例如:
可见当前有2个设备连接在电脑上,用参数 --serial 指定设备进行连接可以打开多个设备的镜像。
scrcpy --serial=TESTID-Mi999 # 镜像序列号是TESTID-Mi999的设备
scrcpy -s TESTID-Mi999 # 简写
#若要同时镜像多个设备的画面,需要启动多个Scrcpy实例。下例镜像另一台设备0123456789,加上之前镜像的TESTID-Mi999,2个手机窗口会出现在电脑桌面上:
scrcpy --s=0123456789
#如果通过 TCP/IP 连接,serial(序列号)的写法是 ip:port
scrcpy --serial=192.168.1.1:5555
后文会学到很多参数,如果连接了多个设备,这些参数前面都要加上 -s 以指定其中一个设备,之后的学习心里都要有这个谱。比如旋转屏幕命令,紫色参数指定了设备,红色参数旋转屏幕:
scrcpy -s TESTID-Mi999 --lock-video-orientation=0
另外,由于一台设备可以同时通过有线USB和无线IP网络2种方式连接至电脑,所以1台手机可以同时投屏到2台电脑。
2、通过USB自动连接,前提是只连接了一台USB设备:
scrcpy --select-usb #自动选择USB设备
scrcpy -d # 简写
3、通过TCP/IP自动连接,前提是只连接了一台TCP/IP设备:
scrcpy --select-tcpip #自动选择TCP/IP设备
scrcpy -e # 简写
4、连接指定地址的TCP/IP设备(需要先打开设备的TCP监听端口,详见下文“TCP/IP 无线投屏“)
scrcpy --tcpip=192.168.1.1:5555
scrcpy --tcpip=192.168.1.1 # 默认端口是5555
serial 也可以由环境变量提供(也由 adb 使用):
# in bash
export ANDROID_SERIAL=TESTID-Mi999
scrcpy
:: in cmd
set ANDROID_SERIAL=0123456789abcdef
scrcpy
# in PowerShell
$env:ANDROID_SERIAL = '0123456789abcdef'
scrcpy
TCP/IP(无线投屏/无线连接设备):
Scrcpy 依靠 adb 与设备通信,而 adb 支持通过TCP/IP网络(有线或无线)与设备连接,所以 Scrcpy 获得了无线连接能力。
无线连接安卓手机/平板的准备工作
设备必须与电脑连接在同一网络上,也就是手机与电脑处于同一网段,不能跨路由器。
执行以下步骤手动启用TCP/IP连接:
1、走完上文的“USB 有线连接手机/平板的准备工作”。
2、将设备插入电脑上的 USB 端口。
3、将设备连接到与电脑相同的 Wi-Fi 网络。
4、找到设备的IP地址。不同的设备获取路径不同。比如华为手机在设置→系统→关于手机→状态消息。也可以运行命令:
adb shell ip route | awk '{print $9}'
若在 Windows下运行:
adb kill-server
adb shell ip route # 设备地址是192.168.89.101
5、在你的设备上打开TCP 5555端口
adb tcpip 5555
6、拔下设备的数据线
手动连接
在经过准备工作之后,设备已经监听端口,此时可手动无线连接到设备:
1、用IP地址无线连接到设备
adb connect 192.168.89.101:5555
2、运行 scrcpy 投屏
3、结束时关闭连接:adb disconnec
4、如果与设备的连接断开(比如设备锁屏就断开):
- 确保主机仍与 Android 设备连接到同一 Wi-Fi 网络。
- 再次执行 adb connect 重新连接。
- 如果仍然无法解决问题,运行adb kill-server 重置你的主机,再从头开始操作。
自动连接
当设备(例如 192.168.1.1)已监听用于传入 adb 连接的端口(通常为 5555),之后运行:
scrcpy --tcpip=192.168.1.1 # 默认端口是 5555
scrcpy --tcpip=192.168.1.1:5555
如果你不知道IP地址,或设备禁用了adb TCP/IP模式,解决方法是先通过USB连接设备,再运行:
scrcpy --tcpip # 不带参数
这会自动找到设备的 IP 地址和 adb 端口,启用 TCP/IP 模式(如果有必要),然后在启动前连接设备。
自动镜像
scrcpy的作者提供了一个小工具AutoAdb,当设备连接,会自动启动镜像。
autoadb scrcpy -s '{}'
注:当设备投屏到电脑,若此时设备在播放音乐,也会被转移到电脑播放,这就起到了将设备的音乐串流到电脑音箱播放的作用(仅支持 Android 11及以上)。
从 Android 11 开始,"无线调试”选项允许开发者在没有物理连接(如USB线)的情况下,将设备与电脑连接,以便进行应用程序的开发和调试。
-------- 客户端体系结构 --------
以下是视频和音频流的客户端体系结构概述:
视频和音频在设备上被捕获和编码,生成的数据包使用自定义协议,通过 adb 通道的独立套接字发送至客户端。该协议传输原始编码数据包,数据包头提供数据包边界(用于减少视频延迟)和 PTS(用于记录)的早期信息。
然后经由 demuxer 步骤将视频和音频流解复用为数据包。
如果启用了录制功能,demuxer 会将基本流异步并入 MP4 或 MKV。因此,数据包在设备端编码,但在客户端进行封装,分工如此。
若要将画面显示出来或发送到 V4L2,需要将视频数据包解码为视频帧;同理,若是要播放音频,需要将数据包解码为音频帧(blocks of samples) 并由 audio player 组件播放。
-------- 视频 --------
分辨率
默认情况下,scrcpy 会尝试以 Android 设备的原始分辨率进行镜像。
若想提高显示性能,可以降低镜像的分辨率。
将宽度和高度限制为某个最大值,比如1024:
scrcpy --max-size=1024 #
scrcpy -m 1024 # 简写
Scrcpy 会根据镜像比例计算另一条边长。比如1920×1080 的设备将以 1024×576 进行镜像。
如果编码失败,scrcpy 会自动以较低的分辨率重试 ,除非启用了这条参数:--no-downsize-on-erro
比特率
默认的镜像比特率为8Mbps,可以更改:
scrcpy --video-bit-rate=2M
scrcpy --video-bit-rate=2000000 # 与上一条相同的比特率
scrcpy -b 2M # 简写
控制帧率
可以限制捕获的最大帧率:
scrcpy --max-fps=15
将实际捕获帧率输出到控制台,每秒显示一次:
scrcpy --print-fps
结合使用可看到镜像的实时帧率:
scrcpy -s TESTID-Mi999 --max-fps=15 --print-fps
也可以随时使用 ALT+ i 来启用或关闭帧率的输出(请参阅快捷方式一节)
注:以上3个参数:分辨率,比特率,帧率都会影响到画面的流畅度。若是用电脑显示器观看手机视频,参数的值需要大一些以获得高画质和不卡顿的播放:
#高质量播放,帧率60,旋转画面(手机应用需要横屏),ALT+f 退回桌面
scrcpy --max-fps=60 --fullscreen -b 20M --audio-buffer=200 --display-buffer=200 --lock-video-orientation=1
反之若是网络条件不好,或者是无线连接,可降低这3个参数的值以降低带宽需求:
scrcpy --max-fps=15 -m 1024 -b 2M
Codec(编解码器)
可以选择设备的视频编解码器,可选值为:默认,h264,h265,av1
scrcpy --video-codec=h264 # 默认编码器
scrcpy --video-codec=h265
scrcpy --video-codec=av1
H265提供更好的质量,H264提供更低的延迟,如果你的设备支持AV1那就更好了。
对于高级用法,要将任意参数传递给MediaFormat,请参看帮助 scrcpy --help,其中的参数 --video-codec-options 一节。
Encoder(编码器)
列出设备上所有可用的编码器:
scrcpy --list-encoders # 若PC连接了连接单个设备,自动选择设备
scrcpy -s TESTID-Mi999 --list-encoders #若PC连接了多个设备,要指定该设备的UUID
有时默认编码器可能出现问题甚至崩溃,此时可尝试其它编码器,由 --video-codec 参数给出 codec。
比如上图显示出2个h264编码器:OMX.qcom.video.encoder.avc 和 OMX.google.h264.encodercodec,他们归属于 h264 Coder 之下,于是这样选择某个具体的h264编码器:
scrcpy --video-codec=h264 --video-encoder='OMX.qcom.video.encoder.avc'
注:avc是h264的另一个名字。
旋转屏幕
可以在 4个不同的级别上旋转投影屏幕:
● ALT+r 切换横竖屏。只有当前运行的app支持请求的方向才会旋转。
● --lock-video-orientation 更改镜像的方向,这是设备发送的视频方向,会影响录像。
● --orientation 这是PC客户端的显示方向,影响显示和录像。
● --rotation 只影响显示不影响录像。可以使用快捷键ALT + 左箭头和ALT + 左箭头随时动态更改。
在捕获端锁定镜像方向(会影响录像的方向):
scrcpy --lock-video-orientation # 初始(当前)的方向
scrcpy --lock-video-orientation=0 # 自然方向(手机是纵向,平板是横向)
scrcpy --lock-video-orientation=90 # 90° 顺时针方向
scrcpy --lock-video-orientation=180 # 180°
scrcpy --lock-video-orientation=270 # 270° 顺时针方向
在渲染端锁定镜像方向(会影响录像的方向):
scrcpy --orientation=0
scrcpy --orientation=90 # 90° 顺时针
scrcpy --orientation=180 # 180°
scrcpy --orientation=270 # 270° 顺时针
scrcpy --orientation=flip0 # 水平翻转
scrcpy --orientation=flip90 # 水平翻转+ 90°顺时针
scrcpy --orientation=flip180 # 垂直翻转 (水平翻转 + 180°)
scrcpy --orientation=flip270 # 水平翻转 + 270°顺时针
锁定镜像方向(不影响录像的方向):
scrcpy --rotation=1 # 可选的值为0、1、2、3。每增加一个数就逆时针旋转90度。
注:--lock-video-orientation和 --orientation都能影响录像的方向,但有何差别?
默认情况下,PC屏幕上的镜像方向会随着设备的旋转而自动旋转。打开手机的“自动旋转”选项,再运行支持自动旋转的应用(比如计算器),如果垂直拿着手机,PC屏幕上的手机镜像就是垂直方向;横着拿手机,镜像也会自动横过来(或者按 ALT+r 也可以实现该效果,无需旋转手机)。
--lock-video-orientation 就是PC屏幕上的镜像方向由参数指定,不再随着手机的旋转而旋转,这在某些情况下可能很有用,比如需要在固定的方向上显示应用程序,或者玩游戏。
--orientation 则是镜像会随着设备的旋转而发生变化,比如:
scrcpy --orientation=0 # 不旋转
scrcpy --orientation=1 # 逆时针90度
scrcpy --orientation=2 # 180度
屏幕裁剪
可以对设备屏幕进行裁剪,只镜像屏幕的一部分:
scrcpy --crop=600:800:0:0 # 以 (0,0) 为原点的 600x800 像素
数值以设备的自然方向表示(手机为纵向,平板电脑为横向)。
如果同时指定了 --max-size,会先裁剪,再缩放。
多显示屏
如果设备有多个显示屏,可以选择要镜像的显示屏:
scrcpy --display=1
获得设备的显示屏ID列表:
scrcpy --list-displays
设备至少运行 Android 10 才能控制副屏,否则副屏将被镜像为只读,即只能投屏而不能控制。
缓冲
默认情况下没有视频缓冲,以获得尽可能低的延迟。
你也可以通过添加缓冲(增加了视频流延迟)的方法来补偿视频的卡顿,以获得更流畅的播放效果。
视频、v4L2 sinks 和音频播放都可应用本参数:
scrcpy --display-buffer=50 # 为视频添加 50ms 缓冲
scrcpy --v4l2-buffer=300 # 为 v4L2 sinks 添加 300ms 缓冲
scrcpy --audio-buffer=200 # 为音频播放添加 200ms 缓冲
可以同时使用:
scrcpy --display-buffer=50 --v4l2-buffer=300
不播放
--no-playback 参数禁止在PC上播放镜像和音频,但不影响录像,这在需要隐蔽或不受干扰的情况下录像,或启用v4L2时非常有用:
scrcpy --v4l2-sink=/dev/video2 --no-playback
scrcpy --record=file.mkv --no-playback
# 用Ctr+C中断。
也可以单独禁用视频和音频播放:
# 将视频发送到V4L2sink而不播放,但保持音频播放
scrcpy --v4l2-sink=/dev/video2 --no-video-playback
# 录制视频和音频,但只播放视频
scrcpy --record=file.mkv --no-audio-playback
注:若要顺利地录制音频,需要 Android 11 及以上版本,参见“音频”一节。
无视频
禁用视频转发,只转发音频:
scrcpy --no-video
Video4Linux
请参阅 Video4Linux 一节。
-------- 音频 --------
音频转发即 Android 设备的音频被转发至电脑。仅支持 Android 11 及更高版本的设备,能提供低延迟的音频输出,默认启用转发。
● 对于 Android 12 或更新的设备,音频转发功能开箱即用。
● 对于 Android 11,启动 scrcpy 时需要确保设备屏幕解锁。一个假弹出窗口会短暂出现,让系统认为 shell 应用程序处于前台。如果不这样做,音频捕获就会失败。
对于 Android 10 及更早版本,无法音频捕获,会自动禁用。
如果音频捕获失败,仍会继续捕获视频(由于默认情况下已启用了音频,因此如果不能使用音频,就不能让 scrcpy 失败),除非设置了 --require-audio。
无音频
禁用音频:scrcpy --no-audio
如果仅仅是不播放音频,但仍然转发音频用于录制,参见上文的”不播放“一节。
仅音频
若仅播放音频,请禁用视频播放:
scrcpy --no-video #用Ctr+C中断。
在没有视频的情况下,音频延迟通常并不敏感,因此建议增加缓冲,以最大限度地减少音频的卡顿:
scrcpy --no-video --audio-buffer=200
音频源
默认音频源是转发设备的音频输出:
scrcpy --audio-source=output
可以改为捕获设备的麦克:
scrcpy --audio-source=mic
例如,你的电脑没有麦克,但可以利用手机的麦克将声音传至电脑,在电脑上录音:
scrcpy --audio-source=mic --no-video --no-playback --record=file.opus
按 Ctrl+c 退出录制。
Codec(编解码器)
可以选择音频编解码器,值为:默认值,(uncompressed PCM 16-bit LE):opus,aac,flac,raw
scrcpy --audio-codec=opus # 默认
scrcpy --audio-codec=aac
scrcpy --audio-codec=flac
scrcpy --audio-codec=raw
举例:录制视频和音频,其中视频编码为H.264,音频编码为AAC,以MP4格式封装:
scrcpy -r abc.mp4 --video-codec=h264 --audio-codec=aac
如果收到如下错误:
Failed to initialize audio/opus, error 0xfffffffe
说明你的设备没有Opus编码器,试试 scrcpy --audio-codec=aac
对于高级用法,要将任意参数传递给MediaFormat,请参看帮助 scrcpy --help,其中的 --video-codec-options 一节。
Encoder(编码器)
设备上可能有多个视频编码器和音频编码器,按以下语法列出:
scrcpy --list-encoders
执行以下命令选择特定的音频编码器:
scrcpy --audio-codec=opus --audio-encoder='OMX.google.aac.encoder'
比特率
默认音频比特率为 128Kbps。若要更改:
scrcpy --audio-bit-rate=64K
scrcpy --audio-bit-rate=64000 # 与上一条相同
注:此参数不适用于 RAW 音频编解码器(--audio-codec=raw)
缓冲
必须为音频配置缓冲。它必足够小,以保持可接受的延迟;但也要足够大,以尽量减少缓冲区不足导致的音频故障。
默认缓冲区大小设置为50ms,可以调整:
scrcpy --audio-buffer=40 # 比默认值小
scrcpy --audio-buffer=100 # 比默认值大
请注意,该选项会更改目标缓冲。可能无法达到目标缓冲(通常是在缓冲区频繁下溢时)。
如果你与设备之间没有交互操作(比如仅观看视频),最好采用较高的视频延迟和音频延迟,以得到平滑不卡顿的的播放效果:
scrcpy --display-buffer=200 --audio-buffer=200
还可以配置另一个音频缓冲区(音频输出缓冲区),默认设置为 5ms。尽量不改,除非你听到了一些”机器人音“和故障音:
scrcpy --audio-output-buffer=10 # 只在绝对必要的情况下改变数值
-------- 控制 --------
只读镜像
仅镜像设备而不控制设备 (包括任何可与设备交互的方式,如键盘输入、鼠标事件和文件拖放):
scrcpy --no-control
scrcpy -n #简写
这对于将视频投射到电脑的大显示器上观看很有帮助,因为键鼠不会影响到手机。
还可以使用 H.265 编码提升视频清晰度,同时增加音频和视频的延迟以提升播放的稳定性:
scrcpy --no-control --video-codec=h265 --display-buffer=200 --audio-buffer=200
文本注入偏好
输入文本时,会产生两种类型的事件:
● 按键事件,表示按键被按下或松开;
● 文本事件,表示已输入文本。
Scrcpy默认使用按键事件来输入字母,只有这样,键盘才会在游戏中正常运作 (例如 WASD 键)。
但这也有可能造成一些问题。如果你遇到了问题,可以通过以下方式避免:
scrcpy --prefer-text #文件事件,但这会导致键盘在游戏中工作不正常
scrcpy --raw-key-events #或者相反,你可以强制始终注入原始按键事件。
这些选项对 HID 键盘没有影响(所有键事件都作为此模式下的扫描码发送)。
按键事件同时提供扫描码(键盘上按键的物理位置)和键码(取决于键盘布局), scrcpy 仅使用键码(它不需要物理按键的位置)。
然而,按键事件不足以处理文本输入——有时需要多次按键才能生成一个字符,有时一个按键可以产生多个字符,即使是简单的字符在按键事件中也可能不容易处理,因为它们取决于布局。例如,在法语键盘上,键入 (点) 会生成 +.
为此,Scrcpy只将有限的一组按键触发的按键事件转发到设备,其余的由文本事件处理。
这一组按键是:ENTER,ESC,BACKSPACE,TAB,HOME,PAGE_UP,PAGE_DOWN,DEL,END,上下左右4个方向键。
双向复制和粘贴
每当设备的剪贴板发生变化,会被自动同步到电脑的剪贴板。
反之,scrcpy 会在向设备注入Ctrl+v之前,自动将电脑剪贴板同步到 设备剪贴板。
快捷键都会转发到设备,比如 Ctrl:
● Ctrl+c 通常执行复制
● Ctrl+x 通常执行剪切
● Ctrl+v 通常执行粘贴 (在电脑到设备的剪贴板同步完成之后)
为啥强调“通常”呢?虽然大多数情况下这3个快捷键都会执行以上功能,但实际的行为取决于设备前台运行的程序。比如当按下Ctlr+c,Termux 会发送 SIGINT,而 K-9 Mail 会新建一封邮件。
若是碰到这种情况,设备上的复制,剪切和粘贴快捷键会有所改变(Android >= 7):
ALT+c 注入 COPY (复制)
ALT+x 注入 CUT (剪切)
ALT+v 注入 PASTE (粘贴) (在电脑到设备的剪贴板同步完成之后)
另外,某些app不接受粘贴 (比如 Termux),此时可使用快捷键 ALT+Shift+v 将电脑的剪贴板文本转换为一串“按键事件”输入到设备,就像是你敲键盘输入那样。不过该功能可能会导致非 ASCII 编码的内容出现错误,或者干脆无法粘贴。
作为 ALT+Shift+v 的替代,选项 --legacy-paste 的作用是,当你按下Ctrl+v,剪贴板中的文本会被模拟为按键输入到设备。
警告: 将电脑剪贴板的内容粘贴至设备 (无论是通过 Ctrl+v 还是ALT+v) 都会将内容复制到 Android 设备的剪贴板。因此任何安卓应用程序都能读取到,应避免将敏感内容 (如密码) 通过这种方式粘贴。
要禁用自动剪贴板同步功能,使用 --no-clipboard-autosync。
双指捏合屏幕缩放
模拟手机/平板的“双指捏合缩放”:Ctrl+按下并拖动鼠标。
在按住 Ctrl 时按下鼠标左键,直到松开鼠标左键前,移动鼠标会使屏幕内容相对于“屏幕中心”进行缩放或旋转 (如果应用支持)。
从技术上来说,scrcpy 会在鼠标位置以及屏幕镜像中心的位置分别生成触摸事件。
重复按键
默认情况下,长时间按住某个键会生成重复的按键事件,这可能会导致某些游戏出现性能问题。
为避免转发重复按键事件,请执行以下操作:
scrcpy --no-key-repeat
此选项对 HID 键盘无影响(在此模式下,重复按键由 Android 直接处理)。
右键单击和中键单击
默认情况下,单击鼠标右键是 "后退",单击滚轮(中键)是返回主页。
要禁用这些快捷键并将点击转发到设备,请执行以下命令:
scrcpy --forward-all-clicks
文件拖放
安装APK:
将 APK 文件 (文件名以 .apk 结尾) 拖放到 scrcpy 窗口,会在设备上安装。
不会有视觉反馈,终端会输出一条日志。
将文件推送至设备:
将非 APK 文件拖放至 scrcpy 窗口,默认会推送文件到设备的 /sdcard/Download/
不会有视觉反馈,终端会输出一条日志。经实验,文件名不能有中文和空格。
可以在推送时指定设备上的目标目录:
scrcpy --push-target=/sdcard/Movies/
物理键盘和鼠标模拟
请参阅 HID/OTG 部分。
-------- 设备--------
scrcpy 的一些命令行参数会操作设备自身。
保持唤醒状态
阻止设备在连接时一段时间后休眠:
scrcpy --stay-awake
scrcpy -w #简写
关闭 scrcpy 后恢复初始状态。
如果设备未物理插入(仅通过TCP/IP连接)则不起作用(这是Android行为)。
关闭设备屏幕
可以通过以下的命令行参数在连接到设备后关闭设备屏幕,但镜像不中断:
scrcpy --turn-screen-off
scrcpy -S # 简写
或者随时按 ALT+o
要重新打开屏幕,按 ALT+Shift+o。
在安卓系统中,按下POWER(电源键)按钮是打开屏幕。为方便起见,如果通过 scrcpy 发送 POWER(通过右键单击或 MOD+p),则会在稍作延迟后强制关闭屏幕(尽力而为),物理 POWER 按钮仍会打开屏幕。
关闭屏幕,同时阻止设备休眠:
scrcpy --turn-screen-off --stay-awake
scrcpy -Sw # 简写
显示触摸点
在开会演示时,可能会需要显示 (物理设备上的) 物理触摸点。
Android 在“发者选项”中提供了这项功能。
Scrcpy 提供一个选项,可以在程序启动时开启这项功能并在退出时恢复初始值:
scrcpy --show-touches
scrcpy -t # 简写
请注意只显示“物理”触摸 (用手指在屏幕上的触摸),不显示来自 scrcpy 的点击。
Scrcpy退出时息屏
scrcpy --power-off-on-close
Scrcpy启动时亮屏
默认情况下,scrcpy启动时设备屏幕就被点亮。若要防止此行为,请执行以下操作:
scrcpy --no-power-on
-------- 投屏窗口--------
标题
默认情况下,镜像窗口标题为设备型号:
可以更改:
scrcpy --window-title='你的标题'
位置和尺寸
可以指定初始镜像窗口的位置和尺寸:
scrcpy --window-x=100 --window-y=100 --window-width=800 --window-height=600
无边框
禁用镜像的边框:
scrcpy --window-borderless # ALT+f4关闭<