ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Escrcpy 使用指南:基于图形化 Scrcpy 的 Android 设备显示与控制全解析

Escrcpy 使用指南:基于图形化 Scrcpy 的 Android 设备显示与控制全解析 Escrcpy 使用指南基于图形化 Scrcpy 的 Android 设备显示与控制全解析【免费下载链接】escrcpy Display and control your Android device graphically with scrcpy.项目地址: https://gitcode.com/GitHub_Trending/es/escrcpy本篇技术指南围绕 Escrcpy 的官方中文文档README-CN.md展开系统讲解这款基于 Electron 的 Scrcpy 图形化客户端如何实现 Android 设备的镜像显示、多设备控制、无线连接与反向网络共享。读完本文你将掌握 Escrcpy 的安装方式、USB/无线连接流程、核心特性背后的实现原理、偏好设置与快捷键体系并能在多设备场景下组合使用群控、窗口编排与自动化能力。Escrcpy 是一款以「图形化 Scrcpy」为定位的开源桌面应用本质是把命令行形态的 Scrcpy 封装为可视化界面同时叠加 ADB 设备管理、多设备协同、MCP 自动操控等能力。项目采用 Electron Vue 3 构建版本信息见 desktop/package.json围绕 Scrcpy 内核形成了完整的设备接入、镜像控制、文件管理与自动化工作流。下面从特性概览、安装连接、操作实践到源码原理逐层展开。核心特性一览README 文档归纳了 Escrcpy 的十项核心能力这也是理解整个项目功能边界的起点内嵌镜像独立内嵌窗口自动适配分辨率与屏幕方向内置一体化快捷操作键盘映射直接在内嵌镜像上配置点击、摇杆、滑动、滚动与自动化映射多设备群控单窗口同控多台设备广播输入支持批量截图与 APK 安装集成控制栏可拖拽排序的紧凑侧边栏涵盖旋转、截图、应用、文件、终端、自动操控与自动化自动操控基于 MCP 协议深度融合构建支持多模型对话与智能设备控制自动化脚本图形化逐步编排工作流支持屏幕识图条件判断与多设备批量执行多设备管理可视化窗口编排统一管理所有已连接设备无线连接无线 ADB 连接支持局域网自动发现与 Gnirehtet 反向供网快捷键管理可自定义的全局快捷键快速执行设备操作Scrcpy 内核高性能、低延迟屏幕镜像与控制。需要说明的是README 同时指出Escrcpy 专注于稳定的集成底座能力部分高级特性源自私有扩展仓库 EscrcpyX以付费形式提供。本文仅覆盖开源仓库中可验证的能力。技术底座Electron 与 Scrcpy 内核的融合从 desktop/package.json 的依赖清单可以看出项目的技术选型electron33 提供桌面容器vue3.5 负责界面devicefarmer/adbkit封装 ADB 协议escrcpy/shared等 workspace 包承载共享逻辑。开发脚本支持pnpm dev启动开发服务器、pnpm build构建应用。Scrcpy 内核的接入方式值得关注。desktop/electron/middleware/scrcpy/index.js 中所有镜像能力都通过sheller以scrcpy command子进程形式拉起mirrorProcess sheller(scrcpy ${command}, { shell: true, encoding: utf8, ... })该中间件围绕 Scrcpy 命令行封装了一组能力函数与界面的各类操作一一对应函数底层命令用途mirrorscrcpy --serialserial --window-titletitle启动镜像窗口实现record追加--recordsavePath录制屏幕实现launch追加--new-display、--start-apppkg以新虚拟显示器启动应用实现helper--no-window --no-video --no-audio无界面辅助执行getAppList--list-apps枚举设备应用getDisplayIds--list-displays枚举显示器getCameraList--list-cameras枚举摄像头getEncoders--list-encoders枚举编解码器其中launch的实现值得展开当启用新显示器--new-display时它会通过正则/New display:.?\(id(\d)\)/i从 scrcpy 输出中解析出虚拟显示器 ID 作为启动完成的信号从而在界面层获得「新显示器已就绪」的可靠回调desktop/electron/middleware/scrcpy/index.js#L222-L231。所有子进程统一由ProcessManager管理在应用退出前统一 kill避免残留进程见quit-before事件监听。安装方式通过发布的软件包手动安装Escrcpy 支持 Windows、macOS、Linux 三大桌面平台各平台均可从项目的发布页下载对应安装包GitHub 发布页及 Gitee/GitCode 国内镜像源均提供分发详见 快速上手文档。macOS 通过 Homebrew 安装macOS 用户可使用 Homebrew 安装具体方法参阅官方维护的 homebrew-escrcpy 仓库见 README-CN.md 安装章节。开发模式运行开发者可克隆仓库后以开发模式运行git clone 仓库地址 cd escrcpy corepack enable pnpm pnpm install pnpm dev其中pnpm dev启动 Vite 开发服务器pnpm build会根据当前平台自动构建安装包详见 develop.md。快速上手USB 连接与无线连接USB 连接方式在安卓设备上启用「开发者模式」和「USB 调试」功能启动 Escrcpy 并将安卓设备通过 USB 连接电脑Escrcpy 设备列表应已检测到设备点击「开始镜像」开始使用。注意若手机弹出调试授权提示请点击允许。无线连接扫码连接先完成 USB 连接方式的前两步在开发者选项中启用并进入「无线调试」点击「通过二维码配对设备」开始使用。扫码连接背后对应 ADB 的pair命令。在 desktop/electron/middleware/adb/index.js 中可以看到其实现通过adb pair host:port code完成无线配对若 stderr 非空则判定配对失败并抛出。无线连接IP 地址连接注意若首次无线连接失败可能需先进行无线配对需在无线调试页面获取设备无线地址通常为连接 WiFi 时分配的 IP 地址和端口号默认为 5555。先完成 USB 连接方式的前两步在 Escrcpy 中输入设备 IP 地址和端口号点击「连接设备」此时设备列表应显示您的手机点击「开始镜像」开始使用。对应的connect实现desktop/electron/middleware/adb/index.js#L365-L381不仅检查 stderr还会检测 stdout 中是否包含cannot、failed等错误关键词以提高连接失败的判定准确性。局域网自动发现除了手动输入 IPEscrcpy 还支持通过 mDNS 在局域网内自动发现支持无线调试的设备。从源码看该流程分三步执行desktop/electron/middleware/adb/index.js#L233-L343scanMdnsDevices基于 mDNS 广播扫描候选设备probeDeviceCandidates对候选设备逐一探测 ADB 端口可达性过滤已连接设备后通过connect批量接入并发数受偏好设置中的「并发上限」控制。整个过程会通过onStatus回调向界面反馈discovering / probing / unreachable / connecting / connected / error等状态这也是界面上「发现设备」进度提示的来源。macOS 与 Linux 平台的注意点macOS 和 Linux 平台未预装 Scrcpy需要手动安装具体分别参考 Linux 安装文档 与 macOS 安装文档。依赖安装成功后即可按照上述 USB 或无线连接步骤操作。设备操作与多设备群控操作指南 将设备操作归纳为三大类批量处理批量镜像批量截屏批量安装应用批量文件管理批量执行脚本批量计划任务批量能力是「单窗口同控多台设备」的落地点。批量截屏在 ADB 中间件中通过screencap实现desktop/electron/middleware/adb/index.js#L108-L122使用 adbx 的screenshot.capture抓取屏幕文件按Screencap-YYYY-MM-DD-HH-mm-ss.png命名写入偏好设置中配置的存储路径默认桌面。控制模式镜像模式对应mirror录制模式对应record摄像头录制音频录制摄像头自定义模式透传自定义 Scrcpy 参数OTG 模式「自定义模式」直接对应用户在偏好设置中填写的额外 Scrcpy 参数最终拼入createMirrorProcess的--serial与--window-title之后的命令行desktop/electron/middleware/scrcpy/index.js#L112-L120。设备交互栏自动操控MCP切换应用、返回主页、返回键启动应用、关闭屏幕实验性功能通知中心、电源键屏幕旋转、音量控制、截图重启设备、安装 APP、文件管理器、执行脚本、计划任务Gnirehtet反向网络共享交互栏的实现位于 控制栏组件 及其子组件explorer、gnirehtet、install、launch、rotation、screenshot、terminal、volume 等支持拖拽排序。偏好设置详解Escrcpy 将 Scrcpy 的命令行参数图形化为偏好设置界面偏好设置文档并按功能域分组。每组配置项最终都会转换成对应的 scrcpy 命令行参数拼接进进程启动命令。通用主题风格、语言选择、文件存储路径、ADB 路径、Scrcpy 路径、Gnirehtet 路径、Scrcpy 参数、Gnirehtet 参数、自动连接设备、自动执行镜像、Gnirehtet 修复、调试模式、悬浮控制栏、使用系统终端、首选终端、并发上限。其中「ADB 路径」的动态切换在源码中有专门处理当common.adbPath配置变化时中间件会先 kill 现有客户端与子进程再重新初始化 ADB 客户端desktop/electron/middleware/adb/index.js#L38-L58保证运行期切换不残留旧连接。视频禁用视频传输、最大分辨率、视频比特率、刷新频率、视频编解码器、显示方向、旋转角度、屏幕裁剪、显示器选择、视频缓冲区、接收端v4l2缓冲区。设备显示触摸点、保持唤醒状态、控制时关闭屏幕、控制结束后关闭屏幕、禁用控制时自动亮屏、模拟辅助显示器。窗口窗口宽度、窗口高度、窗口 X 坐标、窗口 Y 坐标、无边框模式、全屏模式、窗口置顶、禁用屏幕保护。音频禁用音频传输、保留设备音频、音频源选择、音频编解码器、音频比特率、音频缓冲区、音频输出缓冲区。录制录制视频格式、录制视频方向、录制时长、禁用视频回放、禁用音频回放。输入鼠标模式、鼠标绑定、键盘模式、键盘注入方式、游戏手柄设置。摄像摄像头源选择、摄像头尺寸、摄像头比例、摄像头帧率。这些配置项在代码侧以「配置模型」形式组织。以启动类配置为例desktop/src/models/preference/launch/index.js 定义了--new-display虚拟显示器内置从 1280x720 到 7680x4320 的桌面/平板/手机/超宽屏等几十种常见分辨率模板、--display-ime-policy、--flex-display、--no-vd-destroy-content等字段每个字段都声明了对应的field参数名、控件类型Select/Switch与默认值。这种「模型驱动表单」的设计让新增配置项只需要添加模型描述即可自动生成界面。快捷键参考在 scrcpy 窗口内可以通过键盘和鼠标快捷键执行操作。以下列表中MOD是快捷键修饰键默认是左Alt或左SuperSuper通常是 Windows 或 Cmd 键。可以使用--shortcut-mod修改修饰键可选键包括lctrl、rctrl、lalt、ralt、lsuper和rsuper# 使用右Ctrl作为快捷键修饰键 scrcpy --shortcut-modrctrl # 使用左Ctrl或左Super作为快捷键修饰键 scrcpy --shortcut-modlctrl,lsuper完整快捷键表来源快捷键文档操作快捷键切换全屏模式MODf向左旋转屏幕MOD←左向右旋转屏幕MOD→右水平翻转屏幕MODShift←左|MODShift→右垂直翻转屏幕MODShift↑上|MODShift↓下暂停或恢复显示MODz恢复显示MODShiftz重置视频捕获/编码MODShiftr调整窗口至 1:1像素级显示MODg调整窗口以去除黑边MODw| 双击左键¹点击HOMEMODh| 中键点击点击BACKMODb|MODBackspace| 右键点击²点击APP_SWITCHMODs| 第4键点击³点击MENU解锁屏幕⁴MODm点击VOLUME_UPMOD↑上点击VOLUME_DOWNMOD↓下点击POWERMODp开机右键点击²关闭设备屏幕保持镜像MODo打开设备屏幕MODShifto旋转设备屏幕MODr展开通知面板MODn| 第5键点击³展开设置面板MODnn| 双击第5键³折叠面板MODShiftn复制到剪贴板⁵MODc剪切到剪贴板⁵MODx同步剪贴板并粘贴⁵MODv注入计算机剪贴板文本MODShiftv打开键盘设置仅限 HID 键盘MODk启用/禁用 FPS 计数器输出到 stdoutMODi捏合缩放/旋转Ctrl点击并移动垂直倾斜双指滑动Shift点击并移动水平倾斜双指滑动CtrlShift点击并移动拖放 APK 文件从电脑安装 APK拖放非 APK 文件推送文件到设备¹ 双击黑边以去除它们。² 右键点击会在屏幕关闭时唤醒屏幕否则执行 BACK 操作。³ 第 4 和第 5 鼠标按键如果鼠标支持。⁴ 对于开发中的 React Native 应用MENU会触发开发菜单。⁵ 仅在 Android 7 及以上版本支持。重复按键的快捷键需要在释放后再次按下该键来执行。例如执行「展开设置面板」先按下并保持按住MOD然后双击n最后释放MOD。所有Ctrl按键的快捷键会被转发到设备由当前活动应用处理。Gnirehtet 反向网络共享反向网络共享允许 Android 设备使用所连接计算机的网络连接不需要任何 root 权限设备或计算机均无需支持 GNU/Linux、Windows 和 Mac OS。目前通过 IPv4 转发 TCP 和 UDP 流量不支持 IPv6详见 Gnirehtet 参考文档。Windows 和 Linux 应用已内置 Gnirehtet 功能设备连接成功后通过「设备」→「设备控制栏」→「Gnirehtet」即可启用反向网络功能。macOS 版本未内置 Gnirehtet需手动安装安装指南。Gnirehtet 在源码中同样以子进程方式管理desktop/electron/middleware/gnirehtet/index.js。其完整启用流程run(deviceId)可分为四步desktop/electron/middleware/gnirehtet/index.js#L86-L114stop先清理可能存在的旧进程relay启动中继服务器并监听 stdout 中的Relay server started作为启动成功的信号isInstalled通过 ADB 检查设备端是否已安装com.genymobile.gnirehtet偏好设置中的「Gnirehtet 修复」开启时跳过检查installstart未安装则先安装 APK再启动客户端启动时还会追加偏好设置中「Gnirehtet 参数」配置的附加参数。窗口编排多设备可视化布局设备窗口编排是 Escrcpy 面向多设备管理和屏幕空间优化的高级功能详见 窗口编排文档通过全屏的可视化拖拽界面可精确控制每个设备窗口的位置、大小与布局。核心组件全局配置组件设置所有设备的默认窗口参数默认宽度/高度、位置坐标等每个编排方案中只能有一个设备窗口组件每个已连接设备可添加为独立组件支持独立位置尺寸设置可继承或覆盖全局配置。设备显示规则只显示当前已连接的设备已添加的设备不会重复显示设备名称优先显示自定义名称其次为设备型号。布局调整要点移动点击窗口组件后按住鼠标左键拖拽松手完成定位缩放拖拽窗口边角调整大小系统自动维持合理比例尺寸限制最小宽度为容器宽度的 1/6最小高度为容器高度的 1/4窗口不能拖拽到编排区域外部允许重叠但建议避免完全遮挡。配置保存机制全局配置存储在scrcpy.global配置节点设备配置存储在scrcpy.[设备ID]节点参数格式对应--window-width、--window-height、--window-x、--window-y配置应用时机启动镜像时自动应用对应窗口配置设备特定配置优先未设置的参数继承全局配置保存后立即生效无需重启应用。开发与生态开发者指南开发者可参阅 develop.md要求 Node.js v20 与 Git使用 pnpm 管理依赖。构建命令支持按平台分别产出安装包pnpm build:win/build:mac/build:linux。调试时可开启偏好设置中的「调试模式」并使用CtrlShiftI打开 DevTools。项目技术栈与致谢README 中特别致谢了该项目所依赖的开源生态scrcpy屏幕镜像与控制核心、adbkitADB 协议工具库、electron桌面框架、vue前端框架、gnirehtet反向网络共享、yadb增强 ADB 命令快速输入、截图、剪贴板等。从代码组织看项目采用 monorepo 结构pnpm-workspace.yaml将可复用能力拆分为独立包packages/adbxADB 扩展、packages/electron-ipcxElectron 进程通信、packages/electron-setup应用装配、packages/shared共享工具、packages/unocss-preset-shades主题预设。主应用位于 desktop 目录其中desktop/electron承载主进程与各类中间件desktop/src承载 Vue 渲染进程文档位于 docs 目录中英文双语。后续路线项目的后续规划与里程碑可查阅 milestones 文档常见问题可参考 帮助文档。作为开源项目其更新节奏不固定遇到问题可通过 Issues 反馈。【免费下载链接】escrcpy Display and control your Android device graphically with scrcpy.项目地址: https://gitcode.com/GitHub_Trending/es/escrcpy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表