使用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,——重启.
随机推荐
- 数据分析之重要模块pandas
1.简介 基于Numpy构建 pandas的出现,让Python语言成为使用最广泛而且强大的数据分析环境之一 pandas的主要功能 - 具备诸多功能的两大数据结构 Series.DataFrame( ...
- vue全国省市选择vue组件
没用懂checkbox,干脆自己定义布尔值,方便数据页面响应. 可以再原始省市数据 下载address.js文件 1.初始化数据格式: 2页面样式: 3.对应输出的数据格式: 4.源码: <!D ...
- 游戏陪玩公众号H5软件开发方案图文详解
用户需求 无论开发怎样的产品,都需要事先对整个市场行情和用户需求进行简单的了解.前面的一组数据已经简明扼要的摆明了现在陪玩市场的行情.而现如今,大多数游戏都需要组队进行,如英雄联盟.王者荣耀.绝地求生 ...
- Golang、python中MD5、SHA512、base64编码等
在GO中处理的话,比较方便. func main() { fmt.Println(md5Str("woGo")) fmt.Println(sha512Str("woGo& ...
- Python基础知识——缩进、标识符、保留字
标识符 标识符就是程序中,使用的各种名称,例如:变量名.常量名.类名等等. 在 Python 中,对标识符格式的要求与 C/C++.Java 等差不多: 第一个字符必须是字母表中的字母或下划线 _ ; ...
- 莫队算法(基础莫队)小结(也做markdown测试)
莫队 基础莫队 本质是通过排序优化了普通尺取法的时间复杂度. 考虑如果某一列询问的右端点是递增的,那么我们更新答案的时候,右指针只会从左往右移动,那么i指针的移动次数是$O(n)$的. 当然,我们不可 ...
- FolkMq v1.4.6 发布(可以内嵌的消息中间件)
功能简表 角色 功能 生产者(客户端) 发布消息.定时消息(或叫延时).顺序消息.可过期消息.事务消息.支持 Qos0.Qos1 消费者(客户端) 订阅.取消订阅.消费-ACK(自动.手动) 服务端 ...
- WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True)
在 WPF 中,如果想做一个背景透明的异形窗口,基本上都要设置 WindowStyle="None".AllowsTransparency="True" 这两个 ...
- Swift 排查引用循环
------------恢复内容开始------------ 一.最近使用RxSwift在多次信号的嵌套中,发现一个对象始终始终无法释放 开始想通过Memory Graph验证是否没有释放,一直报错, ...
- WNS 后台Push服务调试脚本
一.API说明 https://cloud.tencent.com/document/product/276/3212 二.推送脚本 #!/usr/local/bin/python3 # -*- ...