Scrcpy是免费的开源屏幕镜像应用程序,允许您在Windows、macOS或Linux桌面上控制Android设备。
github地址:https://github.com/Genymobile/scrcpy
Android设备必须至少支持API 21 (Android 5.0),确认设备已打开以进行ADB调试,某些设备还需要打开可通过鼠标和键盘控制的其他选项。
在debian(目前仅支持测试和sid季度)和Ubuntu (20.04)中:
Apt install scrcpy
还提供了快照包scrcpy。
为Fedora提供COPR软件包scrcpy。
为Arch Linux提供AUR软件包scrcpy。
向Gentoo提供Ebuild软件包scrcpy/。
Windows可以轻松地提供包含所有依赖项(包括ADB)的预编译包,自述文件中也提供了Chocolatey。
Choco install scrcpy
Choco install ADB #如果您还没有ADB
或Scoop:
Scoop install scrcpy
Scoop install ADB #如果您还没有ADB
[构建] [构建]也可以。
这个节目发表在Homebrew上。自己安装就可以了。
Brew install scrcpy
PATH内也必须有ADB。如果还没有:
# Homebrew=2.6.0
brew install-cask Android-platform-tools
# Homebrew 2.6.0
brew cask install Android-platform-tools
[构建] [构建]也可以。
连接Android设备并执行以下操作:
Scrcpy
此程序支持命令行参数以查看参数列表。
Scr cpy-帮助
降低分辨率
在某些情况下,可以通过降低镜像分辨率来提高性能。
要将宽度和高度都限制为特定值(例如1024),请执行以下操作:
Scr cpy-max-size 1024
Scrcpy -m 1024 #缩写
另一侧按比例缩小,以保持设备显示比例。这样,分辨率为19201080的设备将镜像到分辨率为1024576。
修改码率
默认比特率为8Mbps。要更改视频的比特率(例如,更改为2Mbps):
Scr cpy-位-rate 2m
Scrcpy -b 2M #缩写
限制帧率
要限制捕获的帧速率,请执行以下操作:
Scr cpy-max-fps 15
此功能从Android 10开始正式提供,但在某些早期版本中提供。
画面裁剪
您可以剪切设备屏幕,只镜像屏幕的一部分。
例如,您只能镜像Oculus Go的一只眼睛。
Scrcpy-crop 1224: 1440: 0: 0 #原点为(0,0)的1224×1440像素
如果还指定了-max-size,则在缩放前进行修剪。
锁定屏幕方向
要锁定镜像屏幕的方向,请执行以下操作:
SCR cpy-lock-video-orientation 0 #自然方向
SCR cpy-lock-video-orientation 1 #逆时针旋转90度
SCR cpy-lock-video-orientation 2 # 180
SCR cpy-lock-video-orientation 3 #顺时针旋转90度
只影响录制方向,可以独立旋转窗。
编码器
有些设备内置了多个编码器,但有些编码器可能会引起问题或冲突。可以手动选择其他编码器。
SCR cpy-encode romx . qcom . video . encoder . AVC
要列出可用的编码器,可以指定包含所有编码器的不存在编码器名称。
Scrcpy-encoder _
镜像过程中可以录制视频。
Scrcpy-record file.mp4
Scrcpy -r file.mkv
仅记录,不显示镜像:
SCR cpy-no-display-record file . MP 4
Scrcpy -Nr file.mkv
按# Ctrl C停止录制
由于性能原因,即使不实时显示,记录也包含“跳过的帧”。因为设备为每个帧设置时间戳,所以数据包延迟抖动不会影响记录的文件。
无线
Scrcpy使用ADB与设备通信,ADB支持通过TCP/IP连接设备。
将设备和计算机连接到同一个Wi-Fi。
设置您可以打开手机状态信息、获取设备的IP地址或发出以下命令:
ADB shell IP route | awk ‘ { print $ 9 } ‘
启用设备的网络ADB功能ADB tcpip 5555。
断开设备的USB连接。
连接到设备:ADB connect DEVICE_IP:5555(将DEVICE_IP替换为设备IP)。
正常运行Scrcpy。
可能需要降低比特率和分辨率。
Scr cpy-bit-rate 2m-max-size 800
Scrcpy -b2M -m800 #缩写
多设备
如果Adb devices列出了多个设备,则必须指定设备的序列号。
Scrcpy-serial 0123456789abcdef
Scrcpy -s 0123456789abcdef #缩写
如果设备通过TCP/IP连接:
SCR cpy-串行192.168.0.1: 5555
Scrcpy -s 192.168.0.1:5555 #缩写
您可以同时启动多个scrcpy实例,同时显示多个设备的屏幕。
在设备连接时自动启动
使用AutoAdb,您可以:
auto ADB scrcpy-s“{ }”
SSH 隧道
要远程连接到设备,可以将本地ADB客户端连接到远程ADB服务器(两端需要相同版本的ADB协议)。
在Adb kill-server #本地5037端口上关闭Adb服务器
ssh-cn-l 5037:localhost:5037-r 27183:localhost:27183 your _ remote _ computer
#保持窗口打开
从另一个终端:
Scrcpy
如果不想使用远程端口转发,则可以强制正向连接(请参见-L和-R之间的差异)。
在Adb kill-server #本地5037端口上关闭Adb服务器
ssh-cn-l 5037:localhost:5037-l 27183:localhost:27183 your _ remote _ computer
#保持窗口打开
从另一个终端:
Scr cpy-force-ad b-forward
与无线网络连接一样,屏幕质量可能会下降。
Scr cpy-b2m-m800-max-fps15
标题
窗口标题默认为设备型号。可以使用以下命令进行修改:
Scr cpy-window-title’ my device ‘
位置和大小
可以指定初始窗口位置和大小。
SCR cpy-window-x 100-window-y 100-window-width 800-window-height 600
无边框
关闭边框:
Scr cpy-window-borderless
保持窗口在最前
可以使用以下命令将窗口置于最前面:
Scrcpy-always-on-top on-top
全屏
可以使用以下命令直接从全屏启动scrcpy:
Scrcpy-全屏
Scrcpy -f #缩写
全屏状态可以随时通过MOD f切换。
旋转
可以使用以下命令旋转窗口:
Scrcpy-rotation 1
可选择的值包括:
0:无旋转
1:逆时针旋转90度
2: 180转
3:顺时针旋转90度
可以随时使用MOD(左箭头)和MOD(右箭头)进行更改。
Scrcpy有三个方向。
MOD r请求设备在垂直屏幕和水平屏幕之间切换(如果前台应用程序不支持请求方向,则可以拒绝请求)。
更改-lock-lock-video-orientation镜像的方向(设备传输到计算机的屏幕方向)。这样会影响录音。
-“旋转”(或MOD/MOD)仅旋转窗口内容。只影响显示,不影响记录。
只读
禁用设备的计算机控制(例如,键盘输入、鼠标事件和文件拖放):
Scrcpy-no-control
Scrcpy -n
显示屏
如果设备有多个显示器,则可以选择要镜像的显示器。
Scr cpy-显示器1
可以使用以下命令列出所有显示的id:
在ADB shell dumpsysdisplay #输出中搜索“mDisplayId=”
要控制辅助显示,设备必须运行Android 10或更高版本。否则,镜像是只读的。
保持常亮
连接时防止设备休眠:
Scr cpy-stay-awake
Scrcpy -w
程序退出后,将恢复设备的原始设置。
关闭设备屏幕
您可以使用以下命令行参数在设备屏幕关闭的情况下进行镜像。
Scr cpy-turn-screen-off
Scrcpy -S
或者,随时按MOD o。
要重新打开屏幕,请选择mod shift O .
在Android系统中,电源按钮总是打开屏幕。为了方便起见,对于scrcpy中发生的电源事件(使用鼠标右键或MOD p),屏幕将在短暂延迟后关闭。设备上的电源按钮仍然可以打开设备屏幕。
同时,还可以防止设备休眠。
SCR cpy-turn-screen-off-stay-awake
Scrcpy -Sw
渲染过期帧
默认情况下,为了减少延迟,scrcpy始终渲染解码成功的最近一帧,并跳过上一帧。
强制渲染所有帧(延迟可能会很长):
Scr cpy-render-expired-frames
显示触摸
演示时,可能需要显示物理触摸点(物理设备上的触摸点)。
Android在开发者选项中提供了此功能。
Scrcpy在启动时打开此功能,并提供在关闭时恢复初始设置的选项。
Scr cpy-show-touches
Scrcpy -t
此功能只能显示物理触摸(在屏幕上用手指触摸)。
关闭屏保
默认情况下,Scrcpy不会阻止在计算机上打开的屏幕保护程序。
关闭屏幕保护程序:
Scr cpy-disable-screen saver
旋转设备屏幕
使用MOD r在垂直和水平屏幕模式之间切换。
只有前台应用程序支持所需模式时,才会切换。
复制粘贴
只要Android的剪贴板发生变化,其内容就会自动同步到计算机的剪贴板上。
所有Ctrl快捷方式都将传递给设备。其中:
Ctrl c通常执行复制
Ctrl x通常执行剪切
Ctrl v通常执行粘贴(计算机到设备剪贴板同步完成后)
大多数情况下,这些键执行这些功能。
但是,实际行为取决于设备的前台程序。例如,Termux在按Ctrl c时发送SIGINT,K-9 Mail发送新邮件。
在这种情况下,要剪切,请复制并粘贴(仅支持Android=7)。
MOD c注入COPY(复制)
MOD x注入CUT(剪切)
MOD v注入PASTE(粘贴) (计算机到设备剪贴板同步完成后)
MOD Shift v还将计算机剪贴板的内容转换为输入到设备中的一系列击键事件。如果应用程序(如Termux)不允许粘贴,则此功能非常有用。但是,使用此功能可能会导致非ASCII编码内容出错。
将警告:计算机剪贴板的内容粘贴到设备上时(通过Ctrl v或MOD v),内容将复制到设备的剪贴板上。这样可以读取所有Android应用程序。要避免以这种方式粘贴密码等敏感内容。
有些设备不支持通过程序设置剪贴板。-legacy-paste选项允许您修改Ctrl v和MOD v的工作方式,以便通过按键事件(如MOD Shift v)注入计算机剪贴板内容。
双指缩放
模拟两个手指的缩放。按住Ctrl键并移动鼠标。
更准确地说,按住Ctrl键的同时按住鼠标左键。在释放鼠标左键之前,所有鼠标移动都将围绕屏幕中心缩放或旋转内容(如果应用了支持)。
实际上,scrcpy会在相对于屏幕中心对称的位置生成“虚拟手指”上发生的其他触摸事件。
文字注入偏好
打字时,系统生成两个事件。
按键事件表示按键被按下或释放。
表示输入了一个字符的文本事件。
默认情况下,程序使用按键事件输入字符。只有这样,键盘才能在游戏中正常工作(例如WASD键)。
但是,这也可能引起一些问题。如果出现问题,可以通过以下方法避免:
Scr cpy-prefer-text
(这可能会导致键盘在游戏中无法正常工作。)。
按键重复
默认情况下,按住一个键会生成多个重复的关键点事件。某些游戏可能会出现性能问题。
防止重复按键事件传递:
Scr cpy-no-key-repeat
右键和中键
默认情况下,右键单击将触发返回键(或电源键),按中键将触发HOME键。要禁用这些快捷键并将所有单击传递到设备,请:
Scr cpy-forward-all-clicks
安装APK
APK文件(文件名为.以apk结尾)拖放到scrcpy窗口中进行安装。
此作业在屏幕上保持不变,并向控制台输出日志。
将文件推送至设备
要将文件推送到设备上的/sdcard/,请将非APK文件拖放到scrcpy窗口中。
此操作没有可视响应,仅从控制台输出日志。
启动时可以修改大象目录。
Scr cpy-push-target/SD卡/foo/bar/
Scrcpy不支持音频使用Sndcpy
在以下列表中,MOD是快捷键的修饰键。
默认值为(左)Alt或(左)Super。
可以使用-shortcut-mod进行修改。可选键包括lctrl、rctrl、lalt、ralt、lsuper和rsuper。例如:
#使用右侧的Ctrl键
Scr cpy-shortcut-mod=r ctrl
#左Ctrl键左Alt键或Super键
Scr cpy-shortcut-mod=l ctrl lalt,l super
Super键通常表示Windows或Cmd键。
操作
键盘快捷键
全屏
MOD f
把屏幕向左转动
MOD(向左箭头)
把屏幕向右转动
MOD(右箭头)
将窗口大小重置为1:1(像素匹配)
MOD g
重置窗口大小以移除黑色边
MOD w |双击
单击“主页”屏幕
MOD h |鼠标中键
单击以返回
MOD b |右键单击
单击“切换”以应用
MOD s
单击菜单(解锁屏幕)
MOD m
按音量
MOD(向上箭头)
单击卷-
MOD(向下箭头)
单击电源
MOD p
打开屏幕
单击鼠标右键
关闭设备屏幕(仍在计算机上显示)
MOD o
打开设备屏幕
MOD Shift o
旋转设备屏幕
MOD r
展开通知面板
MOD n
折叠通知面板
MOD Shift n
复制到剪贴板
MOD c
剪切到剪贴板
MOD x
同步和粘贴剪贴板
MOD v
计算机剪贴板文本注入
MOD Shift v
打开/关闭FPS显示(在stdout中)
MOD I
缩放。
按住Ctrl键并移动鼠标
通过双击黑色边,可以删除黑色边。右键单击将在屏幕关闭时打开屏幕,其馀部分被认为是按返回键。需要Android版本Android=7。
所有Ctrl键的快捷键都将传递给设备,因此在当前应用程序中处理。
要使用指定的ADB二进制文件,可以设置ADB环境变量。
ADB=/path/to/adb scrcpy
要更改Scrcpy-server的路径,请设置SCRCPY_SERVER_PATH。
Linux
Android 1
远程控制
Windows