使用Scrcpy 在电脑显示手机画面并控制安卓设备
使用Scrcpy 显示手机画面并控制手机
原文(有删改):https://www.iplaysoft.com/scrcpy.html
背景
本文适用于安卓开发人员,不针对普通安卓手机用户。
在安卓开发调试中,有时候需要操作到设备。但有些设备的屏幕又比较特殊,例如缺少触摸屏,或者屏幕显示效果很奇怪。因此需要使用到一些关于投屏工具。
例如: Vysor。
可惜 Vysor Pro 收费较贵,免费版广告又多。而Scrcpy 就是一个比较好的开源替代品。
特性:
- 屏幕画面投屏 + 控制软件
- 跨平台支持 Win、Mac、Linux
- 支持USB 数据线 (或WiFi) 连接电脑
Scrcpy
Scrcpy 可以视为开源免费版的 Vysor 替代品,可以将安卓手机的画面投屏到电脑桌面显示上并进行操控。
简单地说,就是可以让你在电脑上控制手机!它支持鼠标控制、键盘输入、电脑剪切板复制粘贴、拖放文件传输到手机、以及拖放 APK 文件进行安装。
Scrcpy 实际的投屏效果非常理想,画面清晰流畅,基本无明显延迟,相比 Vysor 要付费后才能设置高码率,Scrcpy 可以自定义视频码率这点显得十分良心。软件支持自动横屏,操作很灵敏,实用性非常的高。

你可以方便地利用 Scrcpy 来测试 APP 应用、玩游戏、高效完成一些需要在手机上进行的复杂工作、更高效地办公;也能更方便地进行 Android 屏幕录像、截屏;甚至还能方便你上班时摸鱼划水。应用场景非常多,无论是开发者还是普通个人用户都相当的实用。
教程
Scrcpy 是一款命令行工具,没有图形界面,但这并不妨碍它成为一款出色好用的开源软件!其实它的使用也并不复杂。
GUI增强
作为一款如此出色实用的开源软件,却因为命令行的操作方式,使得它有不小的使用难度,让很多同学无法享受到它的便利,实在是遗憾。
为了解决命令行日常操作不便的问题,有热心的开发者实现了对应的GUI。
- QtScrcpy : https://gitee.com/Barryda/QtScrcpy/releases
- Scrcpy-GUI : https://github.com/Tomotoes/scrcpy-gui/releases
建议使用 Scrcpy-GUI。
使用 Scrcpy 你无需 ROOT 手机,也不需在手机上安装 APP,只需在系统设置里启用“USB调试”( adb 调试) 即可。
连接电脑的方式可选 USB 数据线连接或 ADB 无线 WiFi 连接。
下面我们给大家提供一个 Scrcpy 的简单使用教程。
准备工作
- 准备好 USB 数据线,安卓系统版本要求 5.0 以上
- Scrcpy 需要使用 adb 驱动进行与电脑之间通讯,Windows 版的安装包里似乎已经包含了 adb。你也可以手动从下载这个 ADB 命令行工具进行安装。
- 需要在手机端的系统设置里开启「开发者选项」及「USB 调试」选项。不同的手机开启方法不尽相同,找不到选项的话可以自行去搜索一下。

Windows 平台
Windows 用户直接下载并安装,连接好数据线后,电脑上执行 scrcpy.exe 即可启动软件。首次连接时,手机上会问你是否允许它对设备进行调试,按下确认同意即可。

macOS 平台
Mac 用户需要使用 HomeBrew 命令进行安装。其实 HomeBrew 的功能很实用,它可以帮助你非常简单地一键安装/卸载各种软件,包括 Scrcpy。
安装 homebrew:
通过命令行 (Terminal) 执行 ,如已安装可跳过
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装 Scrcpy:
(如果网络太慢,可以考虑
更换 Homebrew 国内源
或使用代理)
brew install scrcpy
安装 ADB:
如果你没有安装
ADB 命令行工具
,那么也可以用 brew 来安装
brew cask install android-platform-tools
使用 USB 数据线连接手机后,执行
scrcpy命令即可启动软件。首次连接会在手机上问你是否允许它对设备进行调试,按下确认同意即可。如果你有多台手机连接到电脑,可以执行
adb devices查看每一台设备对应的ID,然后执行scrcpy -s 设备ID来连接使用指定的设备。
Linux 平台
Linux 用户可以参考官网的说明自己编译安装。
sudo snap install scrcpy
Scrcpy 命令参数
这些参数可以多个自由组合使用,注意区分大小写。
| Scrcpy 的命令参数 | |
|---|---|
| 关闭手机屏幕 | scrcpy -S |
| 限制画面分辨率 | scrcpy -m 1024 (比如限制为 1024) |
| 修改视频码率 | scrcpy -b 4M (默认 8Mbps,改成 4Mbps) |
| 裁剪画面 | scrcpy -c 1224:1440:0:0 表示分辨率 1224x1440 并且偏移坐标为 (0,0) |
| 多设备切换 | scrcpy -s 设备ID (使用 adb devices 命令查看设备ID) |
| 窗口置顶 | scrcpy -T |
| 显示触摸点击 | scrcpy -t 在演示或录制教程时,可在画面上对应显示出点击动作 |
| 全屏显示 | scrcpy -f |
| 文件传输默认路径 | scrcpy --push-target /你的/目录 将文件拖放到 scrcpy 可以传输文件,此命令指定默认保存目录 |
| 只读模式(仅显示不控制) | scrcpy -n |
| 屏幕录像 | scrcpy -r 视频文件名.mp4 或 .mkv |
| 屏幕录像 (禁用电脑显示) | scrcpy -Nr 文件名.mkv |
| 设置窗口标题 | scrcpy --window-title '异次元好棒!' |
| 同步传输声音 | 可借助 USBaudio 这个开源项目实现,但仅支持 Linux 系统 |
Scrcpy 快捷键
启动之后,你就可以在电脑桌面上看到 Scrcpy 的投屏窗口和手机画面了,你可以直接用鼠标进行操作,它同时也有很多键盘快捷键可以使用。

| Scrcpy 快捷键列表 | |
|---|---|
| 切换全屏模式 | Ctrl+F |
| 将窗口调整为1:1(完美像素) | Ctrl+G |
| 调整窗口大小以删除黑色边框 | Ctrl+X | 双击黑色背景 |
设备 HOME 键 |
Ctrl+H | 鼠标中键 |
设备 BACK 键 |
Ctrl+B | 鼠标右键 |
设备 任务管理 键 (切换APP) |
Ctrl+S |
设备 菜单 键 |
Ctrl+M |
设备音量+键 |
Ctrl+↑ |
设备音量-键 |
Ctrl+↓ |
设备电源键 |
Ctrl+P |
| 点亮手机屏幕 | 鼠标右键 |
| 复制内容到设备 | Ctrl+V |
| 启用/禁用 FPS 计数器(stdout) | Ctrl+i |
| 安装APK | 将 apk 文件拖入投屏 |
| 传输文件到设备 | 将文件拖入投屏(非apk) |
注:在 macOS 平台上,请使用 cmd 代替 Ctrl。
屏幕录像
如有需要,你也可以通过命令对连接好的安卓手机进行录屏,并将视频保存为 .mp4 格式。
- 投屏并录屏:
scrcpy -r file.mp4 - 不投屏只录屏:
scrcpy -Nr file.mp4
scrcpy 录屏效果

使用 WIFi 连接
Scrcpy 使用 adb 与 Android 设备通讯,而 adb 本身是支持无线连接的。因此除了 USB 数据线之外,我们也能无线使用。前提是需要保证手机和电脑处于同一局域网 (连接到相同的 WiFi 路由器),步骤如下:
- 查询设备当前的 IP 地址 (设置 →关于手机→状态)
- 启用 adb TCP/IP 连接,执行命令:
adb tcpip 5555,其中 5555 为端口号 - 拔掉你的数据线
- 通过 WiFi 进行连接,执行命令:
adb connect 设备IP地址:5555 - 重新启动 scrcpy 即可
- 如果 WiFi 较慢,可以调整码率:
scrcpy -b 3M -m 800,意思是限制 3 Mbps,画面分辨率限制 800,数值可以随意调整。 - 如需切换回 USB 模式,执行:
adb usb
总结
个人感觉 Scrcpy 用来办公真的很方便,可以在电脑前轻松处理手机端的事情,对于没有电脑端的 App,或必须用手机来操作时,Scrcpy 真的能让你效率猛增!绝对是人手必备的利器。
再加上 Scrcpy 完全免费开源,支持跨平台,支持录屏,而且是独立的程序。
使用Scrcpy 在电脑显示手机画面并控制安卓设备的更多相关文章
- 使用Scrcpy实现电脑控制安卓手机
很多时候我们想要在电脑上使用一些手机软件,使用模拟器当然是一种选择,但是这些模拟器要不然不免费,要不然广告多不放心.Scrcpy是一个开源免费的软件,通过abd命令实现了安卓手机投屏和控制功能,并且支 ...
- [UWP]涨姿势UWP源码——适配电脑和手机
上一篇我们介绍了绘制主界面的MainPage.xaml,本篇则会结合MainPage.xaml.cs来讲一讲如何适配电脑和手机这些不同尺寸的设备. 同时适配电脑和手机存在几个麻烦的地方: 屏幕尺寸差距 ...
- 通过JS语句判断WEB网站的访问端是电脑还是手机
通过JS语句判断WEB网站的访问端是电脑还是手机,以显示不同的页面! 目录腾讯网的适配代码如何判断访问网站的机器类型-如何判断ipadJS 判断浏览器客户端类型(ipad,iphone,android ...
- 电脑时间显示秒 win10电脑显示农历
win10电脑时间显示秒 显示农历. Win10怎样让任务栏时间显示秒_百度经验 win10电脑显示农历 网上搜到的不管用. 直接下载win10万年历.我下载的人生日历. 最烦广告, 还有一些流氓行为 ...
- WordPress主题设置插件,让你的站点有电脑、手机双主题
我们建站的时候总是会优先考虑自适应的主题,但是与之对应,免费的自适应主题都调用国外公共资源,访问速度不太理想.加上wordpress未经优化之前,本身也没有极高的访问效率.所以大家可以下载这款“主题设 ...
- JS判断web网站访问端是PC电脑还是手机
通过JS语句判断WEB网站的访问端是电脑还是手机,以显示不同的页面! <script type="text/javascript"> <!-- //平台.设备和操 ...
- PHP判断访问终端,电脑或手机访问
函数代码: //判断电脑或手机访问 function is_mobile(){ $user_agent = $_SERVER['HTTP_USER_AGENT']; $mobile_agents = ...
- 使用WebRTC实现电脑与手机通过浏览器进行视频通话
最近一直在研究WebRTC,做了一个小项目:www.meet58.com,这个项目利用WebRTC.WebSocket可以让各种设备只通过浏览器进行视频聊天,无论是电脑.手机或者是平板.下面就是手机和 ...
- 使用JS在页面进行数据处理时显示等待画面
使用js在页面进行数据处理期间显示等待画面: 在页面选择执行函数进行数据处理期间,显示等待画面. <script> function fun(the,row_id) { //测试函数 // ...
- win7系统电脑显示windows副本不是正版怎么办
win7系统电脑显示windows副本,可以:在开始输入框中输入cmd——以管理员权限运行——在命令行中输入SLMGR -REARM,——重启.
随机推荐
- 011_元件封装FootPrint处理
011_元件封装FootPrint处理 原理图的引脚与PCB的引脚数量一一对应,IC的PCB Foot Print属性添加好属性,后面就不用一个个添加了.
- CF1872G
题意:一个正整数序列,\(a[i] < 10^9\),求 \(l\),\(r\),最大化 \[\sum_{i = 1}^{l - 1} a[i] + \prod_{i = l}^r a[i] + ...
- Partition和ReduceTask的关系
先看源码: numPartitions = conf.getNumReduceTasks(); if (numPartitions > 1) { //设置了ReduceTask个数后(大于1), ...
- 【GUI软件】小红书搜索结果批量采集,支持多个关键词同时抓取!
目录 一.背景介绍 1.1 爬取目标 1.2 演示视频 1.3 软件说明 二.代码讲解 2.1 爬虫采集模块 2.2 软件界面模块 2.3 日志模块 三.获取源码及软件 一.背景介绍 1.1 爬取目标 ...
- golang 常用操作
golang 获取切片 slice 第一个 最后一个 元素 复合数据类型切片通常用作Go中索引数据的口语结构. 该类型[]intSlice是具有类型为integer的元素的切片. len函数用于获取切 ...
- Typora最后的免费版本0.11.18
Typora最后的免费版本为0.11.18. 之后的1.x开始收费. 免费版本0.11.18的百度网盘链接如下(永久链接): 链接:https://pan.baidu.com/s/1XizAD0SFp ...
- WebGL:使用着色器进行几何造型
前言 本文将介绍如何使用着色器来进行几何造型,说到几何图形大家一定都不陌生,比如说三角形.圆形,接触过WebGL基础使用的小伙伴一定都知道怎么去在画布上绘制一个三角形,只要传入三个顶点坐标,并选择绘图 ...
- 数据库实验—DDL
使用SQL语句,在D盘的Data文件夹下,创建一个名为jxdb+学号后2位的教学管理数据库(如:学号后两位为01,则数据库名为jxdb01).把教学管理数据库文件增长参数设置为4MB,文件最大大小参数 ...
- aws语音呼叫调用,告警电话
import requests data = { 'channel': '99x', 'called_number': '135xxx', 'tts_code': 'TTS_xx', 'tts_par ...
- kubernets之带有limit的资源
一 pod中容器的limits属性的作用 1.1 创建一个带有资源limits的pod apiVersion: v1 kind: Pod metadata: name: limited-pod s ...