android开源投屏工具scrcpy简介

news2025/3/14 0:07:31

目录

一,初识scrcpy

1.1 scrcpy介绍

1.2 scrcpy特点

二,scrcpy指令说明

2.1 画面设置

2.1.1 缩小分辨率

2.1.2 修改画面比特率

2.1.3 限制画面帧率

2.1.4 画面裁剪

2.1.5 锁定屏幕朝向

2.2 屏幕录制

2.3  连接方式

2.3.1 无线

2.3.2 多设备

2.4 窗口设置

2.4.1  标题

2.4.2 位置和大小

2.4.3 无边框

2.4.4 保持窗口在最前面

2.4.5 全屏

2.4.6 旋转

2.5  其它设置

2.5.1 只读

2.5.2 显示屏

2.5.3 保持常亮

2.5.4 关闭设备屏幕

2.5.5 关闭屏保

2.6 文件传输

2.6.1 安装APK

2.6.2 将文件推送至设备


一,初识scrcpy

1.1 scrcpy介绍

首先,我们来认识一下Scrcpy

Scrcpy 是一个开源的命令行工具软件,被设计用于使计算机用户能通过android adb或通过usb数据线控制其Android设备,支持通过鼠标和键盘对Android设备操作,更重要的是无需root权限。

开源地址:https://github.com/Genymobile/scrcpy

电脑上安装scrcpy后,执行scrcpy命令,弹出镜像窗口如下,

1.2 scrcpy特点

  • 免费开源
  • 无需root权限
  • 可以运行在Linux,Window和Mac系统上
  • 可以共享剪贴板
  • 轻量 (原生,仅显示设备屏幕)
  • 性能 (30~60fps)
  • 质量 (分辨率可达1920x1080或更高)
  • 低延迟 (35-70ms)
  • 快速启动 (数秒内即能开始显示)
  • 无侵入性 (不需要在安卓设备上安装任何程序)

二,scrcpy指令说明

2.1 画面设置

2.1.1 缩小分辨率

有时候,将设备屏幕镜像分辨率降低可以有效地提升性能。

我们可以将高度和宽度都限制在一定大小内(如 1024):

scrcpy --max-size 1024
scrcpy -m 1024  # short version

较短的一边会被按比例缩小以保持设备的显示比例。这样,1920x1080 的设备会以 1024x576 的分辨率显示。

2.1.2 修改画面比特率

默认的比特率是8Mbps。如果要改变画面的比特率 (比如说改成2Mbps):

scrcpy --bit-rate 2M
scrcpy -b 2M  # short version

2.1.3 限制画面帧率

画面的帧率可以通过下面的命令被限制:

scrcpy--max-fps15

这个功能仅在Android 10和以后的版本被Android官方支持,但也有可能在更早的版本可用。

2.1.4 画面裁剪

设备画面可在裁切后进行镜像,以显示部分屏幕。

这项功能可以用于,例如,只显示Oculus Go的一只眼睛。

scrcpy--crop1224:1440:0:0#1224x1440atoffset(0,0)

如果--max-size在同时被指定,分辨率的改变将在画面裁切后进行。

2.1.5 锁定屏幕朝向

scrcpy --lock-video-orientation 0   # 自然朝向
scrcpy --lock-video-orientation 1   # 90° 逆时针旋转
scrcpy --lock-video-orientation 2   # 180°
scrcpy --lock-video-orientation 3   # 90° 顺时针旋转

该设定影响录制。

2.2 屏幕录制

可以在屏幕镜像的同时录制视频:

scrcpy --record file.mp4
scrcpy -r file.mkv

在不开启屏幕镜像的同时录制:

scrcpy --no-display --record file.mp4
scrcpy -Nr file.mkv
# 按Ctrl+C以停止录制

在显示中“被跳过的帧”会被录制,虽然它们由于性能原因没有实时显示。在传输中每一帧都有 时间戳 ,所以 包时延变化 并不影响录制的文件。

2.3  连接方式

2.3.1 无线

Scrcpy 使用adb来与安卓设备连接。同时,adb能够通过TCP/IP连接到安卓设备:

  • 将您的安卓设备和电脑连接至同一Wi-Fi。
  • 获取安卓设备的IP地址(在设置-关于手机-状态信息)。
  • 打开安卓设备的网络adb功能adb tcpip 5555。
  • 将您的设备与电脑断开连接。
  • 连接到您的设备:adb connect DEVICE_IP:5555(用设备IP替换 DEVICE_IP)。
  • 运行scrcpy。

降低比特率和分辨率可能有助于性能:

scrcpy --bit-rate 2M --max-size 800
scrcpy -b2M -m800  # short version

2.3.2 多设备

如果多个设备在执行adb devices后被列出,您必须指定设备的序列号 :

scrcpy --serial 0123456789abcdef
scrcpy -s 0123456789abcdef  # short version

如果设备是通过TCP/IP方式连接到电脑的:

scrcpy --serial 192.168.0.1:5555
scrcpy -s 192.168.0.1:5555  # short version

您可以同时启动多个 scrcpy 实例以同时显示多个设备的画面。

 

 

2.4 窗口设置

2.4.1  标题

窗口的标题默认为设备型号。您可以通过如下命令修改它:

scrcpy--window-title'Mydevice'

2.4.2 位置和大小

您可以指定初始的窗口位置和大小:

scrcpy--window-x100--window-y100--window-width800--window-height600

2.4.3 无边框

关闭边框:

scrcpy--window-borderless

2.4.4 保持窗口在最前面

您可以通过如下命令保持窗口在最前面:

scrcpy--always-on-top 

2.4.5 全屏

您可以通过如下命令直接全屏启动scrcpy:

scrcpy --fullscreen
scrcpy -f  # short version

全屏状态可以通过MOD+f实时改变。

2.4.6 旋转

通过如下命令,窗口可以旋转:

scrcpy--rotation1 

可选的值有:

  • 0: 无旋转
  • 1: 逆时针旋转90°
  • 2: 旋转180°
  • 3: 顺时针旋转90°

这同样可以使用MOD+← (左) 和 MOD+→ (右) 的快捷键实时更改。

需要注意的是, scrcpy 控制三个不同的朝向:

  • MOD+r 请求设备在竖屏和横屏之间切换(如果前台应用程序不支持所请求的朝向,可能会拒绝该请求)。
  • --lock-video-orientation 改变镜像的朝向(设备镜像到电脑的画面朝向)。这会影响录制。
  • --rotation (或MOD+←/MOD+→) 只旋转窗口的画面。这只影响显示,不影响录制。‍

2.5  其它设置

2.5.1 只读

关闭电脑对设备的控制(如键盘输入、鼠标移动和文件传输):

scrcpy --no-control
scrcpy -n

2.5.2 显示屏

如果有多个显示屏可用,您可以选择特定显示屏进行镜像:

scrcpy--display1 

您可以通过如下命令找到显示屏的id:

adb shell dumpsys display #在回显中搜索“mDisplayId=” 

第二显示屏可能只能在设备运行Android 10或以上的情况下被控制(它可能会在电脑上显示,但无法通过电脑操作)。

2.5.3 保持常亮

防止设备在已连接的状态下休眠:

scrcpy --stay-awake
scrcpy -w

程序关闭后,设备设置会恢复原样。

2.5.4 关闭设备屏幕

在启动屏幕镜像时,可以通过如下命令关闭设备的屏幕:

scrcpy--turn-screen-off
scrcpy-S

或者在需要的时候按MOD+o。

要重新打开屏幕的话,需要按MOD+Shift+o.

在Android上,电源按钮始终能把屏幕打开。

为了方便,如果按下电源按钮的事件是通过 scrcpy 发出的(通过点按鼠标右键或MOD+p),它会在短暂的延迟后将屏幕关闭。

物理的电源按钮仍然能打开设备屏幕。

同时,这项功能还能被用于防止设备休眠:

scrcpy--turn-screen-off--stay-awake
scrcpy-Sw 

 

 

2.5.5 关闭屏保

Scrcpy 不会默认关闭屏幕保护。

关闭屏幕保护:

scrcpy--disable-screensaver 

2.6 文件传输

2.6.1 安装APK

如果您要安装APK,请拖放APK文件(文件名以.apk结尾)到 scrcpy 窗口。

该操作在屏幕上不会出现任何变化,而会在控制台输出一条日志。

2.6.2 将文件推送至设备

如果您要推送文件到设备的 /sdcard/,请拖放文件至(不能是APK文件)scrcpy 窗口。

该操作没有可见的响应,只会在控制台输出日志。

在启动时可以修改目标目录:

scrcpy--push-target/sdcard/foo/bar/ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1103935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云计算:掌控未来,一触即发!

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…

Systrace学习笔记

Systrace学习笔记 1.Systrace快捷键2.线程状态3.CPU info4.图形化4.1 Frames帧4.2 用户活动4.3 CPU活动4.4 系统事件 5. SystemServer5.1 SystemServer简介5.2 窗口动画5.3 AMS(ActivityManagerService)5.4 WMS(WindowMagerService)5.5 ServiceThread5.6 HandlerThread 6. Surf…

软考-网络安全体系与网络安全模型

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 by 2023年10月 网络安全体系相关安全模型 BLP机密性模型 BLP(Biba-格雷泽-麦克拉伦&#x…

安装Elasticsearch步骤(包含遇到的问题及解决方案)

注:笔者是在centos云服务器环境下安装的Elasticsearch 目录 1.安装前准备 2.下载Elasticsearch 3.启动Elasticsearch 非常容易出问题 第一次运行时,可能出现如下错误: 一、内存不足原因启动失败 二、使用root用户启动问题 三、启动ES自…

【数据仓库】hadoop生态圈与数据仓库

文章目录 1.大数据定义2. Hadoop与数据仓库3. 关系数据库的可扩展性瓶颈4. CAP理论5. Hadoop数据仓库工具5.1. RDS和TDS5.2. 抽取过程5.3. 转换与装载过程5.4. 过程管理和自动化调度5.5.数据目录(或者称为元数据管理)5.6.查询引擎…

ELK + Filebeat 分布式日志管理平台部署

ELK Filebeat 分布式日志管理平台部署 1、前言1.1日志分析的作用1.2需要收集的日志1.3完整日志系统的基本特征 2、ELK概述2.1ELK简介2.2为什么要用ELK?2.3ELK的组件 3、ELK组件详解3.1Logstash3.1.1简介3.1.2Logstash命令常用选项3.1.3Logstash 的输入和输出流3.1.4Logstash配…

Tengine 边缘AI计算框架移植RV1126(包括opencv的交叉编译)

目录 1.编译opencv 2.拷贝SDK源码到虚拟机 3. 拉取TIM-VX代码 4.拉取Tengine源码并配置 1.编译opencv 编译opencv是为了,在编译Tengine时指定OpenCVConfig.cmake,以便寻找特定的opencv动态库 01.从github拉取opencv源代码 git clone -b 4.5.5 https://github.co…

unity 浏览器插件【embedded browser(原zfbrowser)】简单教程,使unity支持web h5页面,附软件下载链接

一 简介 这是个在项目中使用了很久的浏览器插件。 很负责任的说这是在pc平台上最好用的浏览器插件 商业付费价格78刀,相比3d webview等插件动不动就178、368的价格就显得很良心 最新版下载链接(请勿商用) 1.1 功能概述 基本和普通浏览器无…

基于Scrapyd与Gerapy部署scrapy爬虫方案【可用于分布式爬虫部署】

scrapyd部署爬虫 Scrapyd 是一个基于 Scrapy 的开源项目,它提供了一个简单的方式来部署、运行和监控 Scrapy 爬虫。它是一个用于集成 Scrapy 爬虫到分布式架构中的工具,允许您在分布式环境中运行爬虫,并提供了一组 Web API,用于管…

软考高级系统架构设计师系列之:数学与经济管理

软考高级系统架构设计师系列之:数学与经济管理 一、数学与经济管理二、图论应用-最小生成树三、图论应用-最短路径四、图论应用-网络与最大流量五、运筹方法-线性规划六、运筹方法-动态规划七、运筹方法-转移矩阵八、运筹方法-排队论九、运筹方法-决策-不确定决策十、运筹方法…

携手北大医学部、哈佛BCH顶尖平台,飞鹤全面启动脑发育战略

10月17日,“专研大脑营养 聪明中国宝宝”飞鹤脑发育战略发布会在北京举办。会上,中国飞鹤宣布启动脑发育战略。诺奖得主迈克尔莱维特、中国工程院院士朱蓓薇、中国工程院院士陈卫、北京大学神经科学研究所副所长邢国刚等海内外专家齐聚,共同探…

Redis数据结构之listpack

前言 当数据量较小时,Redis 会优先考虑用 ziplist 来存储 hash、list、zset,这么做可以有效的节省内存空间,因为 ziplist 是一块连续的内存空间,它采用一种紧凑的方式来存储元素。但是它也有缺点,比如查找的时间复杂度…

Unity2023, Unity2022, Unity2021的性能对比(帧率)

最近由于需要用到Unity最新版的一些功能,比如Spline,比如Foward渲染,新项目用了Unity2022.3.5版本,但是出包之后,感觉帧率很低。本着好奇的态度,专门写了一个测试场景,分别在Unity2023.1.15&…

激光跟踪仪在风电行业中的应用

随着全球能源行业重点从化石能源向可再生能源转移,风电行业逐渐成为我国能源供应体系的重要分支,相关的风电检测设备需求量急剧增加。 风电设备主要特点是“重、大”,在过去,主要使用大型卡尺、两点式仪表、专用模板等量具对重要尺…

PS运行中缺失d3dcompiler_47.dll问题的5个有效修复方法总结

在使用ps作图的时候,我们有时会遇到一些问题,其中之一就是“PS运行中缺失d3dcompiler_47.dll”的问题。这个问题可能会导致PS无法正常运行,“d3dcompiler_47.dll”。这是一个动态链接库文件,它是DirectX的一部分,主要负…

Docker仓库harbor私服搭建

Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Regisrty来说,它具有很多的优势。 提供分层传输机制,优化网络传输 Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FT…

Kubernetes 基础

Kubernetes是什么 K8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型, 后经GO语言延用Borg的思路重写并捐献给CNCF基金会开源。 云原生基金会(CNCF)于2015年12月成立,隶属于Linux基金会…

Lock锁的使用方法(一)

public class LockTest01 {private Lock lock new ReentrantLock();public static void main(String[] args) throws InterruptedException {/*** Lock锁 获取锁和释放锁 需要开发人员自己定义*/LockTest01 lockTest01 new LockTest01();lockTest01.print();Thread.sleep(500…

C++基础入门详解(二)

文章目录 引用语法和使用场景基本语法使用场景引用作函数参数引用作返回值常引用 权限问题权限的放大、平移、缩小类型转化时使用的 const 引用的底层逻辑 内联函数内联函数缺点 引用 C中的引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器…

海量小文件数据传输如何确保安全性

在当今的信息化社会,企业需要处理和传输的文件越来越多,越来越大。其中,海量小文件数据是一种特殊的数据类型,它由数亿级别的小文件(通常小于1MB)组成,它在图片网站、物联网设备、日志分析等场景…