news 2026/9/15 20:22:17

Escrcpy 设备控制完全指南:scrcpy 设备操作命令与 Android 设置项深入解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Escrcpy 设备控制完全指南:scrcpy 设备操作命令与 Android 设置项深入解析

Escrcpy 设备控制完全指南:scrcpy 设备操作命令与 Android 设置项深入解析

【免费下载链接】escrcpy📱 Display and control your Android device graphically with scrcpy.项目地址: https://gitcode.com/GitHub_Trending/es/escrcpy

本指南以 docs/zhHans/reference/scrcpy/device.md 为骨架,系统讲解 scrcpy 运行时对 Android 设备本身的控制能力——保持唤醒、屏幕超时、关屏、触摸痕迹、断电/通电策略以及启动指定应用等。文中所有命令均可直接在装有 scrcpy 的终端中运行,同时结合 Escrcpy(本项目)的偏好设置模型与源码实现,说明这些参数在图形化客户端中的对应关系与底层生效原理。读完本文,你将掌握 scrcpy 全部设备级参数的使用方法、单位与取值细节、与adb shell settings的手动操作对应关系,以及 Escrcpy 中如何通过界面配置这些参数。

概述:什么是"设备控制"参数

scrcpy 的大多数命令行参数用于控制镜像本身(分辨率、编码、窗口等),但还有一类参数会对设备本身执行操作——例如修改系统设置、开关屏幕、启动应用。它们的特点是:scrcpy 在启动时应用修改,在退出时尽可能恢复设备的初始状态,从而保证"用完即走、不留痕迹"。

在 Escrcpy 中,这些参数被抽象为 设备(device)偏好模型 下的若干配置项,界面配置后会由 偏好存储的scrcpyParameter方法 拼接为最终的 scrcpy 命令行参数。下文逐一讲解每个参数。

保持唤醒(--stay-awake / -w)

当设备通过有线连接时,防止设备延迟休眠:

scrcpy --stay-awake scrcpy -w # 简写形式
  • 关闭 scrcpy 时恢复设备的初始状态;
  • 如果设备未通过有线连接(即仅通过 TCP/IP 无线连接),--stay-awake无效——这是 Android 系统的特性(休眠策略仅对有电充电场景生效);
  • 该功能通过修改 Android 全局设置项stay_on_while_plugged_in实现,可手动调整:
# 获取当前 stay_on_while_plugged_in 值 adb shell settings get global stay_on_while_plugged_in # 为 AC / USB / 无线充电器启用保持唤醒 adb shell settings put global stay_on_while_plugged_in 7 # 禁用保持唤醒 adb shell settings put global stay_on_while_plugged_in 0

取值为位标志:1 表示 AC 供电,2 表示 USB,4 表示无线充电,7 = 1+2+4 即三种供电方式全部启用。

在 Escrcpy 的偏好设置中,该参数对应设备分类下的"保持唤醒"开关(stayAwake,字段--stay-awake,类型Switch)。本地化文案特别注明:"仅有线方式连接时有效"(见 zh-CN.json),与上述 Android 特性保持一致。

屏幕关闭超时(--screen-off-timeout)

Android 屏幕会在一定延迟后自动关闭,scrcpy 可在运行时修改该延迟:

scrcpy --screen-off-timeout=300 # 300秒(5分钟)

退出时恢复原始值。也可手动修改:

# 获取当前 screen_off_timeout 值 adb shell settings get system screen_off_timeout # 设置新值(单位毫秒) adb shell settings put system screen_off_timeout 30000

单位陷阱需特别注意:Android 系统值(screen_off_timeout)的单位是毫秒,而 scrcpy 命令行参数的单位是

在 Escrcpy 中对应"屏幕超时"配置项(screenOffTimeout,字段--screen-off-timeout,类型InputNumber),界面上的追加单位显示为s(秒),提示文案为"修改屏幕关闭超时设置,并在退出时恢复设备默认",占位符为"设备默认",即不设置时沿用设备自身值。

关闭屏幕(--turn-screen-off / -S)

在镜像开始时通过命令行关闭设备屏幕:

scrcpy --turn-screen-off scrcpy -S # 简写形式

也可随时通过快捷键操作(完整列表见 快捷键文档):

  • MOD+o:关闭设备屏幕(保持镜像);
  • MOD+Shift+o:重新打开屏幕。

需要了解的行为细节:

  • 在 Android 设备上,物理POWER键总是会唤醒屏幕
  • 通过 scrcpy 发送POWER指令(右键点击或MOD+p)会强制在一小段延迟后关闭屏幕(尽力而为),物理POWER键仍会唤醒屏幕。

此功能也可与保持唤醒组合,用于"关屏不息屏"的长时间任务场景:

scrcpy --turn-screen-off --stay-awake scrcpy -Sw # 简写形式

Android 15开始,可手动通过cmd display控制主显示屏电源:

# 关闭屏幕(0表示主显示屏) adb shell cmd display power-off 0 # 打开屏幕 adb shell cmd display power-on 0

Escrcpy 中对应"控制时关闭屏幕"开关(turnScreenOff,字段--turn-screen-off);此外在控制工具栏中还有独立的"关闭屏幕"快捷操作(界面文案"关闭屏幕且保持控制",见 zh-CN.json),配合镜像窗口的"旋转"按钮等同属设备控制动作。

显示触摸痕迹(--show-touches / -t)

做演示时,在物理设备上显示触摸痕迹非常有用。Android 开发者选项中自带此功能,scrcpy 提供启动时启用、退出时恢复初始值的选项:

scrcpy --show-touches scrcpy -t # 简写形式

注意:此功能仅显示物理触摸痕迹(手指在设备上的触摸),scrcpy 注入的虚拟触摸不会显示。可手动修改:

# 获取当前 show_touches 值 adb shell settings get system show_touches # 启用 show_touches adb shell settings put system show_touches 1 # 禁用 show_touches adb shell settings put system show_touches 0

Escrcpy 中对应"展示触摸点"开关(showTouches,字段--show-touches),提示文案为"开启后将激活开发者选项中的显示点按触摸反馈"与"仅在物理设备上展示"。

关闭时断电(--power-off-on-close)

在关闭 scrcpy 时同时关闭设备屏幕:

scrcpy --power-off-on-close

Escrcpy 中对应"控制结束关闭屏幕"开关(powerOffOnClose,字段--power-off-on-close),提示文案为"开启后停止控制设备将自动关闭设备屏幕"。

启动时通电(--no-power-on)

默认情况下,启动 scrcpy 会唤醒设备。如需禁用此行为:

scrcpy --no-power-on

Escrcpy 中对应"控制时禁用自动亮屏"开关(noPowerOn,字段--no-power-on),提示"开启后控制设备时将禁用自动亮屏"。此外偏好模型中还包含--keep-active(保持活跃)开关,其作用是在设备空闲时周期性向系统发送用户活动信号,防止设备因不活动而关闭——它与"保持唤醒"配合可覆盖更多长连接场景。

启动 Android 应用(--list-apps / --start-app)

列出设备应用

scrcpy --list-apps

该命令输出设备上安装的应用列表。在 Escrcpy 中,这一能力被封装为 scrcpy 中间件的getAppList方法——见 desktop/electron/middleware/scrcpy/index.js,它执行scrcpy --serial="<序列号>" --list-apps并通过parseScrcpyAppList解析输出。

启动指定应用

通过包名在启动时运行指定应用:

scrcpy --start-app=org.mozilla.firefox

此功能尤其适合配合虚拟显示器使用——在一个独立的虚拟显示中直接启动应用,与设备主屏幕分离:

scrcpy --new-display=1920x1080 --start-app=org.videolan.vlc

--start-app的值支持三种形态:

前缀含义示例
直接指定包名(推荐,最快)--start-app=org.mozilla.firefox
+启动前先强制停止该应用--start-app=+org.mozilla.firefox
?应用名称检索后启动--start-app=?firefox

两个前缀可组合使用(按此顺序):

scrcpy --start-app=+?firefox

说明:通过?按应用名称检索可能需要几秒(需要遍历应用列表),因此官方建议直接使用包名。

Escrcpy 中的实现视角

在 Escrcpy 中,应用启动流程由 use-start-app hook 承载,其核心流程与上述命令行完全对应:

  1. resolveScrcpyRuntime合并设备配置与启动配置,通过scrcpyParameter生成命令参数(store/preference/index.js)——falsenullundefined、空字符串等值会被剔除,不进入最终命令行;
  2. 需要新建虚拟显示时,解析--new-display尺寸与横竖屏参数(landscape会交换宽高或追加横屏标志);
  3. 中间件launch(desktop/electron/middleware/scrcpy/index.js)在拼接命令时追加--new-display=<尺寸>--start-app=<包名>,并通过就绪正则New display:.+?(id=(\d+))捕获新虚拟显示的 display id 作为返回值;
  4. 对于多用户(work profile / secondary user)场景openSecondaryUserApp会改用adb shell am start-activity --user <userId> --display <displayId> -n <组件名>的方式在指定用户与指定显示上拉起应用,再启动镜像进程。

在 Escrcpy 中配置这些参数

上述全部设备参数在 Escrcpy 的偏好设置界面中均可直接配置,模型定义见 desktop/src/models/preference/device/index.js,汇总如下:

界面配置项命令字段控件类型界面提示(zh-CN)
屏幕超时--screen-off-timeoutInputNumber(单位 s)修改屏幕关闭超时设置,并在退出时恢复设备默认
保持唤醒--stay-awakeSwitch仅有线方式连接时有效
保持活跃--keep-activeSwitch防止设备因不活动而关闭,将定期向系统发出用户活动信号
控制时关闭屏幕--turn-screen-offSwitch开启后控制设备时将自动关闭设备屏幕
控制结束关闭屏幕--power-off-on-closeSwitch开启后停止控制设备将自动关闭设备屏幕
控制时禁用自动亮屏--no-power-onSwitch开启后控制设备时将禁用自动亮屏
展示触摸点--show-touchesSwitch仅在物理设备上展示

配置后的生成逻辑由scrcpyParameter完成:所有开关型参数仅在开启(非false)时才会进入命令行,数值型(如屏幕超时)在未设置时留空以沿用设备默认;此外偏好模型还支持scrcpyAppend追加字段,允许高级用户手动补充任意 scrcpy 参数,为上述标准选项之外的场景留出扩展空间。

小结

scrcpy 的设备控制参数是一组"启动时修改、退出时恢复"的轻量设备操作能力,覆盖保持唤醒、屏幕超时、关屏/亮屏、触摸痕迹、断电策略与启动应用六大场景。使用时需重点留意三点:--stay-awake仅对有线连接有效、--screen-off-timeout与 Android 系统值存在秒/毫秒单位差异、--start-app+/?前缀语义。在 Escrcpy 中,这些能力全部映射为图形化偏好项,由 偏好存储 统一拼接为命令行参数,并经 scrcpy 中间件 执行——既保留了命令行方式的全部灵活性,又提供了零门槛的界面入口。

【免费下载链接】escrcpy📱 Display and control your Android device graphically with scrcpy.项目地址: https://gitcode.com/GitHub_Trending/es/escrcpy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 20:21:35

JuiceFS 如何部署到 K3s 集群:从 CSI 安装到 PVC 存储卷创建

JuiceFS 如何部署到 K3s 集群&#xff1a;从 CSI 安装到 PVC 存储卷创建 【免费下载链接】juicefs JuiceFS is a distributed POSIX file system built on top of Redis and S3. 项目地址: https://gitcode.com/GitHub_Trending/ju/juicefs 这篇文章以官方教程 Use Juic…

作者头像 李华
网站建设 2026/9/15 20:20:49

新手测试工程师的Linux:从连服务器到定位Bug,这么多就够了

相信很多新手跟我一样会问&#xff1a;测试又不是运维&#xff0c;为什么要学Linux&#xff1f;我学完之后发现&#xff0c;不会Linux&#xff0c;连Bug都查不了。一、测试人员为什么要学Linux&#xff1f;刚开始学的时候我也疑惑&#xff1a;测试不是点点点吗&#xff0c;跟Li…

作者头像 李华
网站建设 2026/9/15 20:20:30

双AI协同系统如何提升学术论文写作效率

1. 双AI协同论文写作系统概述在学术研究领域&#xff0c;论文写作一直是耗时耗力的核心环节。传统写作流程中&#xff0c;研究者需要独自完成从数据分析到论文成稿的全过程&#xff0c;效率低下且容易陷入思维定式。近年来&#xff0c;以Claude Code和Codex为代表的大型语言模型…

作者头像 李华
网站建设 2026/9/15 20:19:18

美容整形网站建设避坑指南:5步图解步骤让流量翻倍

美容整形网站建设避坑指南:5步图解步骤让流量翻倍 别再用那些千篇一律的模板站了!做美容整形这一行,客户看脸,更看“信任感”。如果你的官网还停留在十年前的水平,图片模糊、排版拥挤、手机端打开全是乱码,那不仅丢单,更是在砸招牌。 模板网站太丑不够用 ,这不仅是视觉问题,更是转化率的杀手。…

作者头像 李华
网站建设 2026/9/15 20:19:13

数据中台与数据仓库:核心差异与适用场景解析

1. 数据中台与数据仓库的概念界定1.1 数据仓库的传统定位数据仓库&#xff08;Data Warehouse&#xff09;这个概念最早由Bill Inmon在1990年提出&#xff0c;本质上是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合。我在金融行业做数据架构时&#xff0c;最典型…

作者头像 李华