adb scrcpy 无线投屏
目录
scrcpy
This application provides display and control
of Android devices connected via USB or over TCP/IP. It does not require any root access. It works on GNU/Linux, Windows and macOS.
strcpy:copies a string
scrcpy:copies a screen
adb shell ip route | awk '{print $9}' # 获取手机的 ip【192.168.100.31】
adb tcpip 5555 # 手机端启用 tcpip,且指定端口
adb connect 192.168.100.31:5555 # 电脑端连接指定 ip:端口
scrcpy -S --always-on-top # 开始投屏,关闭屏幕,窗口最前
简介
本应用专注于:
- 轻量:原生,仅显示设备屏幕
- 性能:30~120fps,取决于设备
- 质量:分辨率可达 1920×1080 或更高
- 低延迟:35~70ms
- 快速启动:最快 1 秒内即可显示第一帧
- 无侵入性:不会在设备上遗留任何程序
- 用户利益:无需帐号,无广告,无需联网
- 自由:自由和开源软件
功能:
屏幕录制
- 镜像时关闭设备屏幕
双向复制粘贴
- 可配置显示质量
系统要求
- 安卓设备最低需要支持 API 21 (Android 5.0)
- 确保设备已开启 adb 调试
- 在某些设备上,还需要开启额外的选项以使用鼠标和键盘进行控制
安装及使用
- Linux:
apt install scrcpy
- Windows:下载scrcpy-win64-v1.20.zip
- macOS:
brew install scrcpy
- 从源代码编译:构建,简化过程
choco install scrcpy # 通过 Chocolatey 安装,路径【C:\ProgramData\chocolatey\lib\scrcpy\tools】
scoop install scrcpy # 通过 Scoop 安装
where adb # 获取当前电脑可以直接使用的 adb.exe 的位置
scrcpy -v # 查看版本
scrcpy --help # 查看参数列表
scrcpy # 连接安卓设备后执行
scrcpy -s 0123456789abcdef # 【--serial】通过序列号连接指定的本地设备
scrcpy -s 192.168.0.1:5555 # 通过 ip 连接指定的远程设备
autoadb scrcpy -s '{}' # 在设备连接时自动启动,需要使用 AutoAdb
- 可以设置环境变量
ADB
:使用指定的 adbD:\_dev\AndroidSDK\platform-tools\adb.exe
C:\ProgramData\chocolatey\bin\adb.exe
- 可以设置环境变量
SCRCPY_SERVER_PATH
:To override the path of thescrcpy-server
file - 可以设置环境变量
SCRCPY_ICON_PATH
:To override the icon
可以同时启动多个 scrcpy 实例以同时显示多个设备的画面
快捷键
scrcpy --shortcut-mod=rctrl # 修改快捷键的修饰键,使用右 Ctrl 键
scrcpy --shortcut-mod=lctrl+lalt,lsuper # 使用左 Ctrl 键 + 左 Alt 键,或 Super 键(即 Windows或Cmd键)
- 旋转窗口:
ALT + ←/→
- 全屏状态切换(Full):
ALT + F
- 横竖屏切换(Rotate):
ALT + R
- 在关闭设备屏幕的状态下进行镜像:
ALT + O
- 重新打开屏幕:
ALT + Shift + O
- 电源事件:
ALT + P
- 将窗口大小重置为1:1:
ALT + G
- 将窗口大小重置为消除黑边:
ALT + W
,或双击黑边
- 返回桌面(Home):
ALT + H
,或单击中键
- 返回(Back):
ALT + B
,或单击右键
(在屏幕熄灭时点击鼠标右键将点亮屏幕) - 切换应用(Switch):
ALT + S
- 菜单(Menu):
ALT + M
,有菜单时才会响应(例如微信) - 音量调节:
ALT + ↑/↓
- 电源(Power):
ALT + P
- 展开通知栏(notification):
ALT + N
- 收起通知栏:
ALT + Shift + N
- 双指缩放:
Ctrl + 按住并移动鼠标
功能介绍
采集设置
scrcpy -m 1024 # 【--max-size】降低镜像的分辨率,限制宽高到某个值,另一边会被按比例缩小
scrcpy -b 2M # 【--bit-rate】修改码率,默认是 8 Mbps
scrcpy -b2M -m1024 # 【--bit-rate 2M --max-size 1024】同时降低码率和分辨率
scrcpy --max-fps 15 # 限制采集的帧率,从 Android 10 开始才被官方支持
scrcpy --crop w:h:x:y # 只镜像屏幕上以 (x,y) 为原点的 w*k 像素的部分
scrcpy --lock-video-orientation # 锁定屏幕方向为初始方向
scrcpy --lock-video-orientation=0 # 0 = 自然方向,n = 逆时针旋转 n*90°
scrcpy --encoder OMX.google.h264.encoder # 手动选择其它编码器
scrcpy --encoder _ # 列出可用的编码器(指定一个不存在的编码器名称时,错误信息中会列出所有可用编码器)
屏幕录制
scrcpy -r file.mkv # 【--record】在镜像的同时录制视频
scrcpy -Nr file.mkv # 【--no-display --record】仅录制,不显示镜像,按 Ctrl+C 停止
scrcpy --display-buffer=50 # 为显示增加 50 毫秒的缓冲,会增加延迟,但可以减少抖动
无线连接
Scrcpy 使用 adb
与设备通信,并且 adb
支持通过 TCP/IP 连接到设备:
- 将设备和电脑连接至同一
Wi-Fi
(或同一局域网) - 打开 设置 → 关于手机 → 状态信息,获取设备的 IP 地址
- 启用设备的网络 adb 功能:
adb tcpip 5555
- 断开设备的 USB 连接
- 连接到您的设备:
adb connect ip:5555
- 正常运行
scrcpy
adb shell ip route | awk '{print $9}' # 获取手机的 ip【192.168.100.31】
adb tcpip 5555 # 手机端启用 tcpip,且指定端口
adb connect 192.168.100.31:5555 # 电脑端连接指定 ip:端口
scrcpy # 开始投屏
窗口设置
scrcpy --window-title Title # 窗口标题(中文可能乱码),默认为设备型号
scrcpy --window-borderless # 禁用窗口边框(没有最大、最新、关闭按钮)
scrcpy --always-on-top # 保持窗口在最前
scrcpy --rotation 1 # 旋转窗口,0 = 无旋转,n = 逆时针旋转 n*90°,可通过【ALT + ←/→】旋转
scrcpy -f # 【--fullscreen】全屏启动,我的设备全屏启动后会绿屏,可通过【ALT + F】切换
scrcpy --window-x 100 --window-y 100 --window-width 800 --window-height 600 # 指定初始的窗口位置和大小
scrcpy 中有三类旋转方向:
--rotation
或ALT + ←/→
:只旋转窗口,不旋转应用。这只影响显示,不影响录制--lock-video-orientation
:改变设备传输到电脑的画面的朝向,会影响录制ALT + R
:横竖屏切换,只有前台应用程序支持请求的朝向,才会响应该请求
其他设置
scrcpy -n # 【--no-control】禁用电脑对设备的控制,如键盘输入、鼠标事件和文件拖放
scrcpy --display 1 # 如果设备有多个显示屏,可以选择要镜像的显示屏
adb shell dumpsys display | grep mDisplayId= # 列出所有显示屏的 id
scrcpy --disable-screensaver # 关闭电脑上开启的屏幕保护
scrcpy --power-off-on-close # scrcpy 退出时关闭设备屏幕
scrcpy -t # 【--show-touches】显示手指在屏幕上的触摸痕迹,在启动时开启退出时恢复,控制的是开发者选项中的开关
scrcpy -w # 【--stay-awake】阻止设备在连接时一段时间后休眠,scrcpy 关闭时会恢复设备原来的设置
scrcpy -S # 【--turn-screen-off】在关闭设备屏幕的状态下进行镜像,或者【ALT + O】
scrcpy -Sw # 【--turn-screen-off --stay-awake】关闭设备并阻止设备休眠
输入控制
- 复制粘贴:
- 安卓剪贴板变化时,其内容都会 自动同步到电脑的剪贴板
- 可以使用
ALT + C/V/X
将电脑剪贴板的内容复制/粘贴/剪贴至设备,同时将内容 同步到设备的剪贴板 - 也可以使用
ALT + Shift + V
将电脑的剪贴板内容注入到设备的剪贴板(会通过发出一串按键事件完成)
- 将 APK 文件拖放到 scrcpy 窗口会自动安装 APK
- 将非 APK 文件拖放至 scrcpy 窗口会推送文件到设备的
/sdcard/Download/
scrcpy --no-key-repeat # 按住一个按键不放时,禁止生成多个重复按键事件
scrcpy --forward-all-clicks # 禁用右键和中键的默认事件
scrcpy --prefer-text # 禁用默认使用的 按键事件 来输入字母,改为使用 文本事件
scrcpy --push-target=/sdcard/Movies/ # 在启动时修改文件拖放时保存的目标目录
scrcpy -K # 【--hid-keyboard】禁用虚拟键盘、使用物理键盘模拟(HID),仅支持USB连接以及Linux平台
2018-12-6
本文来自博客园,作者:白乾涛,转载请注明原文链接:https://www.cnblogs.com/baiqiantao/p/10075665.html