Escrcpy(安卓手机投屏软件) 最新版v1.30.1 无广告好用安卓无线投屏远程控制软件 ; }* k, M f$ C+ T6 T4 ~
" c0 o) `* T4 o' s
推荐一个这个软件。非常好用,用来远程控制安卓系统设备,如手机 开源掌机 电视 盒子等等 原理就是利用远程端口 adb代码进行操作控制 还能进行内网穿透 后远程控制 手机设备在家,身在外面也能轻松掌管控制设备; I' O; ~0 \7 h1 W3 n! E

. K- ^1 [# k) D- }Escrcpy 是一款强大的工具,它允许用户通过图形化的 Scrcpy 界面来显示和控制他们的 Android 设备。这款应用程序由 Electron 作为其底层框架驱动。Escrcpy 无需任何账户就可以使用,无需担心隐私或安全问题。Escrcpy没有广告,完全免费开源。
3 M. L8 `! n5 S下载地址:
' g- e0 c# u. X2 ?* ~4 i q5 Thttps://pan.quark.cn/s/fb20362d70ad! ]# q+ L, M: X8 b0 e) ^+ A
$ d* ]) A/ \: R& y$ W4 _& f; I: [3 r
" E7 a) r* W( E) _- 软件特点
% X; w% O; |( @* n- 同步:得益于 Web 技术,将更快速的与 Scrcpy 保持同步
- 轻巧度:本机支持,仅显示设备屏幕
- 性能:30~120 帧每秒,取决于设备
- 质量:1920×1080 或更高
- 低延迟:35~70 毫秒
- 快速启动:显示第一张图片仅需约1秒钟
- 非侵入性:不会在安卓设备上留下任何安装文件
- 用户收益:无需账户、无广告、无需互联网连接
- 自由:免费且开源软件
* d. Z/ Q5 b. ]+ Y. y+ f# c0 ?
, r2 q, i$ {, r6 O3 O( A2 t
1.30.1 (2025-07-14)Bug 修复- 修复了在首选项中重置类别配置时所有配置都被清空的问题
- 解决录制相关功能成功时显示计时异常的问题
- 修复了 Windows 中特殊字符阻止创建应用快捷方式启动的问题
; Q+ Q0 ~" A& f* ~, ~- }1 d. H 性能改进- 优化了启动 App 包名称显示
- 优化启动 APP 功能交互3 P6 I4 T! n* P, J$ j% s" r+ I
1 {7 R% C$ `0 g/ h: T
链接安卓设备的方式和开启方法
/ I& V" @) ?3 y2 r( r
3 ?" ~5 L. H8 s% ?. a/ r5 dUSB连接方式注意:若手机弹出调试授权提示,请点击允许
- 在安卓设备上启用开发者模式和USB调试功能
- 启动Escrcpy并将安卓设备通过USB连接电脑
- Escrcpy设备列表应已检测到您的设备,点击"开始镜像"
- 开始使用!
- s) z+ ]9 J+ y9 G 无线连接方式扫码连接- 先完成USB连接方式的步骤1-2
- 在开发者选项中启用并进入"无线调试"
- 点击"通过二维码配对设备"
- 开始使用!
* h( c% m9 P$ E4 B: S IP地址连接注意:若首次无线连接失败,可能需先进行无线配对,详见常见问题 注意:需在无线调试页面获取设备无线地址(通常为连接WiFi时分配的IP地址)和端口号(默认为5555)
- 先完成USB连接方式的步骤1-2
- 在Escrcpy中输入设备IP地址和端口号,点击"连接设备"
- 此时设备列表应显示您的手机,点击"开始镜像"
- 开始使用!( n) M! `) }& i a
; Q! o3 r, K4 T, V% o0 Sadb打开端口
) ^& P5 X0 k7 ^# G# V/ o4 g& Vsetprop service adb tcp port 5555
- t% Y+ d g- a0 a: N" J# d8 V. {
ROOT后还能安装模块或者修改system/build.prop 实现开机启动 打开无线调试5555端口 更方便的进行无线投屏控制链接
3 X8 R @9 c' ^/ y/ x8 K( Z P; a% K% a5 C y! `! F+ z
Escrcpy原理
8 V3 r# x, A; h+ X7 y3 i) Y1 j4 Iscrcpy 的控制原理是一个客户端-服务器架构,利用 ADB 进行通信,并在设备端注入输入事件来实现的。整个过程可以分为几个关键步骤: 建立连接 (ADB):
$ R; i8 a( v. T5 v( \& c- 当你启动 scrcpy(电脑端客户端)时,它首先通过 ADB 与你的 Android 设备建立连接。
- scrcpy 启动一个 ADB 端口转发:adb forward tcp:<local_port> localabstract:scrcpy。这会在电脑的某个端口和设备的 localabstract:scrcpy UNIX 域套接字之间建立一个隧道。
- 设备端,scrcpy 启动一个后台进程(通常是 scrcpy-server 或 scrcpy,通过 adb push 临时推送到设备并执行)。这个服务器进程负责视频流的编码和输入事件的接收。
! i! [ V$ l" B) p. [
视频流传输: $ J0 g7 L6 j# n8 `
- 设备端服务器使用 Android 的 MediaCodec API 对屏幕内容进行硬件编码(通常是 H.264 或 H.265)。
- 编码后的视频流通过之前建立的 ADB 隧道(TCP 套接字)实时传输到电脑客户端。
- 电脑客户端使用 libavcodec (FFmpeg) 等库对视频流进行解码。
- 解码后的视频帧被渲染在电脑客户端的窗口中。) C0 }2 }6 J0 S; Y! L
输入控制 - 核心原理:
Y. V/ I0 N3 U' N7 O9 ~8 K) [- 当你在电脑客户端的窗口中进行操作(点击鼠标、按下键盘、滑动触摸板)时,scrcpy 客户端会捕获这些输入事件。
- 关键转换: 客户端将这些输入事件转换成 Android 设备能够理解的格式。对于鼠标和触摸事件,它生成 Android MotionEvent 结构;对于键盘事件,它生成 Android KeyEvent 结构。
- 注入事件: 转换后的事件数据通过同一个 ADB 隧道(TCP 套接字)发送回设备端运行的 scrcpy-server 进程。
- 设备端执行: 设备端的 scrcpy-server 进程收到事件数据后,调用 Android 系统的 InputManager 服务(通过 android.hardware.input.IInputManager Binder 接口)。
- injectInputEvent: 服务器进程使用 IInputManager 的 injectInputEvent 方法,将接收到的 MotionEvent 或 KeyEvent 注入到系统的输入事件流中。
- 系统处理: Android 系统将这些注入的事件视为来自真实物理输入设备(如触摸屏、物理键盘)的事件,并将其分发给当前处于焦点的应用程序(通常是 scrcpy 窗口本身对应的 Activity 或你正在操作的目标应用),从而实现对设备的远程控制。7 u7 f( Q" d" I" A
权限要求: . Q3 s4 J" o$ @* H# x0 }
- 注入输入事件需要特殊的权限。scrcpy-server 通常以 shell 用户 (u0_aX) 权限运行。Android 系统允许 shell 用户注入输入事件,但通常仅限于注入到自身(scrcpy-server)拥有的窗口。
- 为了让注入的事件能传递到其他应用窗口,scrcpy 在启动服务器时通常会添加参数 -m 1024(或其他较大值)或使用 --prefer-text。这指示服务器创建一个虚拟显示器(display),并将 scrcpy 的镜像显示在这个虚拟显示器上。scrcpy-server 拥有这个虚拟显示器的内容,因此它注入的事件就能被系统分发到该虚拟显示器上的前台应用。
- 在较新 Android 版本上,有时需要开启 “USB 调试(安全设置)” 或 “模拟位置信息应用” 等选项来授权输入注入。, g: d- Y% j: e, u6 y4 q* }
剪贴板同步 (可选):
7 G' w0 V. {8 {6 p2 O ], z/ V- 当启用剪贴板同步 (--clipboard-autosync) 时,scrcpy 还会监听电脑和设备端的剪贴板变化。
- 电脑剪贴板变化时,客户端通过 ADB 隧道发送一个包含文本的特定消息给服务器。服务器接收到后,使用 content 命令或直接调用 ClipboardManager API (需要更高权限或特定方法) 设置设备的剪贴板。
- 设备剪贴板变化时,服务器通过 ADB 隧道通知客户端,客户端再设置电脑的剪贴板。这通常通过监听 ClipboardManager.OnPrimaryClipChangedListener 实现。
: v! {+ y" H1 l% T, [. s. E7 F
总结关键点: - 通道: 基于 ADB 端口转发建立的 TCP Socket 连接。
- 视频流: 设备端硬件编码 -> ADB 隧道传输 -> 电脑端解码渲染。
控制流 (核心):
3 P# D5 B1 ~1 D1 h* i4 f! X- 电脑捕获输入事件 (鼠标/键盘)。
- 转换成 Android MotionEvent/KeyEvent。
- 通过 ADB 隧道发送到设备端服务器。
- 设备端服务器调用 InputManager.injectInputEvent() 方法将事件注入系统。
- Android 系统将事件分发给目标应用。
- L8 U0 O3 a- [$ y1 p* A ?$ V
- 权限: 依赖 shell 用户权限注入事件到自身拥有的窗口/虚拟显示器,可能需要额外安全设置授权。
- 优势: 无需在设备上安装用户级 APP,利用现成的 ADB 基础设施和系统级注入接口,高效且兼容性好。
0 e) Y. Q2 @* b" j7 N7 D
这种架构使得 scrcpy 能够实现低延迟、高效率的屏幕镜像和流畅的控制体验 / G- ]; Y# {- w
4 b7 X! n- n2 @ L: x- i9 ^ |