Scrcpy
这个应用程序提供了USB(或TCP/IP)上连接的Android设备的显示和控制。它不需要任何根访问,它适用于GNU/Linux、Windows和macOS
它专注于:
- 精致 (本机,仅显示设备屏幕)
- 性能 (30 ~ 60 fps)
- 质量 (1920 × 1080或以上)
- 低延迟 (35 ~ 70毫秒)
- 快速启动 (显示第一张图片约1秒)
- 非侵入性 (不在设备上安装任何软件)
需求
Android设备至少需要API 21 (Android 5.0)
确保在设备上启用adb调试
在某些设备上,还需要启用一个附加选项来使用键盘和鼠标控制它
获取
Linux
关于Debian和Ubuntu (20.04)
apt install scrcpy
也可以自己编译
Windows
对于Windows,为了简单起见,可以使用预构建的存档,其中包含所有依赖项(包括adb)
也可以使用Chocolatey进行安装
choco install scrcpy
choco install adb # 如果你还没有
在Scoop中
scoop install scrcpy
scoop install adb # 如果你还没有
macOS
该应用程序可以在Homebrew中使用,可以直接安装它
brew install scrcpy
您需要ADB,并且可以从系统路径PATH
访问它,如果你还没有
brew cask install android-platform-tools
运行
插入一个Android设备,然后执行
scrcpy
它接受命令行参数
scrcpy --help
特性
获取配置
减少尺寸
有时,将Android设备镜像成低分辨率是很有用的,可以提高性能
将宽度和高度限制为某个值 (例如1024)
scrcpy --max-size 1024
scrcpy -m 1024 # 短的版本
计算另外一边以保证设备的高宽比被保留,例如 1920×1080的设备镜像为1024×576
改变码率
默认的比特率是8mbps,改变视频比特率 (例如:2mbps)
scrcpy --bit-rate 2M
scrcpy -b 2M # 短的版本
限制帧率
捕获帧速率可以被限制
scrcpy --max-fps 15
这是Android 10以来的官方支持,但在更早的版本上可能也可以工作
裁切
设备屏幕可以裁剪成只反映屏幕的一部分
这是有用的,例如反映只有一只眼睛的虚拟现实眼镜
scrcpy --crop 1224:1440:0:0 # 1224x1440 偏移量 (0,0)
如果--max-size
也指定了,则在裁剪之后应用调整大小
锁定视频方向
锁定镜像的方向
scrcpy --lock-video-orientation 0 # 自然方向
scrcpy --lock-video-orientation 1 # 逆时针90°
scrcpy --lock-video-orientation 2 # 180°
scrcpy --lock-video-orientation 3 # 顺时针90°
这会影响录制方向
录屏
可以在镜像时录屏
scrcpy --record file.mp4
scrcpy -r file.mkv
在录屏时禁用镜像
scrcpy --no-display --record file.mp4
scrcpy -Nr file.mkv
# 用Ctrl+C中断录制
“跳过的帧”被记录,即使它们没有实时显示(出于性能原因)
帧是设备上的时间戳,因此包延迟变化不会影响记录的文件
连接
无线
Scrcpy使用adb与设备通信,adb可以通过TCP/IP连接到设备
- 将设备连接到与计算机相同的Wi-Fi
- 获取设备IP地址(设置→关于手机→状态)
- 在设备上通过TCP/IP启用adb
adb tcpip 5555
- 拔掉设备
- 连接到您的设备
adb connect DEVICE_IP:5555
,其中DEVICE_IP为设备ip地址 - 像往常一样运行scrcpy
减少比特率可能会有用
scrcpy --bit-rate 2M --max-size 800
scrcpy -b2M -m800 # 短的版本
多设备
如果adb设备中列出了多个设备,则必须指定序列
scrcpy --serial 0123456789abcdef
scrcpy -s 0123456789abcdef # 短的版本
如果设备通过TCP/IP连接
scrcpy --serial 192.168.0.1:5555
scrcpy -s 192.168.0.1:5555 # 短的版本
可以为多个设备启动多个scrcpy实例
SSH隧道
要连接到远程设备,可以将本地adb客户机连接到远程adb服务器 (前提是它们使用相同版本的adb协议)
adb kill-server # 在5037端口上关闭本地adb服务器
ssh -CN -L5037:localhost:5037 -R27183:localhost:27183 your_remote_computer
# 保持开放
从另一个终端
scrcpy
为了避免启用远程端口转发,可以强制一个转发连接 (注意 -L
而不是 -R
)
adb kill-server # 在5037端口上关闭本地adb服务器
ssh -CN -L5037:localhost:5037 -L27183:localhost:27183 your_remote_computer
# 保持开放
从另一个终端
scrcpy --force-adb-forwrad
就像无线连接一样,降低视频质量或许会更好用
scrcpy -b2M -m800 --max-fps 15
窗口配置
标题
默认情况下,窗口标题是设备模型,它是可以改变的
scrcpy --window-title 'My device'
位置和大小
可以指定初始窗口位置和大小
scrcpy --window-x 100 --window-y 100 --window-width 800 --window-height 600
无边界
禁用窗口装饰
scrcpy --window-borderless
总是置顶
保持scrcpy窗口总是在顶部
scrcpy --always-on-top
全屏
应用程序可以直接在全屏启动
scrcpy --fullscreen
scrcpy -f # 短的版本
然后可以用 ctrl + f
动态切换全屏
旋转
窗口可以旋转
scrcpy --rotation 1
0
: 不旋转1
: 逆时针旋转90度2
: 旋转180度3
: 顺时针旋转90度
还可以通过 Ctrl + ←
和 Ctrl + →
动态更改旋转
其他镜像选项
只读
禁用控件 (可以与设备交互的所有东西,如输入键、鼠标事件、拖放文件)
scrcpy --no-control
scrcpy -n
显示
如果有多个显示器可用,可以选择要镜像的显示器
scrcpy --display 1
可以检索显示id列表
adb shell dumpsys display # 在输出中查找我的显示id
只有当设备至少运行Android 10时才能控制辅助显示(否则以只读方式镜像)
关闭屏幕
可以使用命令行选项关闭设备屏幕
scrcpy --turn-screen-off
scrcpy -S
或在任何时候按 Ctrl + o
按 Ctrl + Shift + o
(或者 POWER
, Ctrl + p
) 恢复
它还可以防止设备休眠
scrcpy --turn-screen-off --stay-awake
scrcpy -Sw
显示触摸
对于演示,显示物理触摸(在物理设备上)可能很有用
Scrcpy提供了一个选项来在启动时启用该特性,并在退出时恢复初始值
scrcpy --show-touches
scrcpy -t
输入控制
旋转设备的屏幕
按 Ctrl + r
在纵向和横向模式之间切换
注意,它只在前台应用程序支持所请求的方向时才旋转
复制粘贴
可以在计算机和设备之间双向同步剪贴板
Ctrl + c
将设备剪贴板复制到计算机剪贴板Ctrl + Shift + v
将电脑剪贴板复制到设备剪贴板(如果设备运行Android >= 7则粘贴)Ctrl + v
将计算机剪贴板粘贴为文本事件序列
此外,每当Android剪贴板发生变化时,它都会自动同步到计算机剪贴板
文件拖动
安装APK
要安装APK,请将APK文件(以.apk结尾)拖放到scrcpy窗口
推送文件到设备
要将文件推送到设备上的 /sdcard/,请将一个(非apk)文件拖放到scrcpy窗口
目标目录可以在启动时更改
scrcpy --push-target /sdcard/foo/bar/
快捷键
Action | 快捷键 | 快捷键 (macOS) |
---|---|---|
切换全屏模式 | Ctrl +f | Cmd +f |
向左旋转屏幕 | Ctrl +← (left) | Cmd +← (left) |
向右旋转屏幕 | Ctrl +→ (right) | Cmd +→ (right) |
将窗口大小调整为1:1 | Ctrl +g | Cmd +g |
调整窗口大小以移除黑色边框 | Ctrl +x | Double-click¹ | Cmd +x | Double-click¹ |
点击 HOME | Ctrl +h | Middle-click | Ctrl +h | Middle-click |
点击 BACK | Ctrl +b | Right-click² | Cmd +b | Right-click² |
点击 APP_SWITCH | Ctrl +s | Cmd +s |
点击 MENU | Ctrl +m | Ctrl +m |
点击 VOLUME_UP | Ctrl +↑ (up) | Cmd +↑ (up) |
点击 VOLUME_DOWN | Ctrl +↓ (down) | Cmd +↓ (down) |
点击 POWER | Ctrl +p | Cmd +p |
开机 | Right-click² | Right-click² |
关闭设备屏幕 | Ctrl +o | Cmd +o |
点亮设备屏幕 | Ctrl +Shift +o | Cmd +Shift +o |
旋转设备屏幕 | Ctrl +r | Cmd +r |
展开通知面板 | Ctrl +n | Cmd +n |
折叠通知面板 | Ctrl +Shift +n | Cmd +Shift +n |
将设备剪贴板复制到计算机 | Ctrl +c | Cmd +c |
将电脑剪贴板粘贴到设备上 | Ctrl +v | Cmd +v |
将计算机剪贴板复制到设备并粘贴 | Ctrl +Shift +v | Cmd +Shift +v |
启用/禁用帧率显示 | Ctrl +i | Cmd +i |
自定义路径
要使用特定的adb二进制文件,在环境变量adb中配置其路径
ADB=/path/to/adb scrcpy
要覆盖scrcpy-server文件的路径,需要在SCRCPY_SERVER_PATH中配置它的路径
作者:roger_1279
链接:http://events.jianshu.io/p/0f24ab1b9fbe
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。