安卓端控制安卓端的远程投屏工具,基于 Scrcpy 协议魔改实现。
本项目 Fork 自 mingzhixian/Easycontrol,在此对原作者表示衷心感谢。原项目已多年未更新,本项目在其基础上进行了大量现代化改造与 Bug 修复,并将持续维护。
永久免费 · 开源 · 持续维护
![]() |
![]() |
![]() |
|---|
- 移除捐赠 / 激活逻辑,永久免费使用
- 兼容被控端为安卓15以上系统
- Scrcpy升级到最新版
- 引入appcompat主题(APK体积变大)
- 全新设计语言:绿色主调色彩系统,支持深色模式
- 精细化尺寸系统:统一字号、间距、圆角、阴影层次
- 卡片式布局:圆角卡片 + 细描边,视觉更清爽
- Ripple 涟漪反馈:所有可点击元素带触摸反馈
- 重做全部核心页面:首页、设备详情、设置、投屏、悬浮窗、加载弹窗、对话框
- 投屏界面统一半透明深色浮层 + 白色图标,关闭键红色高亮
- 开关组件适配主题色(开启绿色 / 关闭灰色,不再与背景融为一体)
- 横竖屏自适应布局优化
- 适配
SurfaceControlAPI 变更:createDisplay/destroyDisplay迁移至DisplayControl.createVirtualDisplay/destroyVirtualDisplay - 适配
SurfaceControl静态方法移除:setDisplaySurface/setDisplayProjection/setDisplayLayerStack改用SurfaceControl.Transaction对象(仅 Android 15+ 启用,Android 14 及以下保留静态方法,兼容性最佳) - 适配
AudioRecord的native_setup签名变更(Android 14 QPR3 / 15) - 适配
WindowManager的caller参数变更 - 禁用 Server 模块 R8 混淆,解决 Android 15 ART 运行时 ClassNotFoundException
- 低延迟编码参数:
KEY_PRIORITY、KEY_LATENCY - 非侵入式防息屏:使用
PowerManager.userActivity替代修改screen_off_timeout - 视频编码参数优化
崩溃与资源泄漏
- 修复
Client.close()连接失败时 NPE 导致资源无法释放 - 修复
ClientStream未关闭 ADB Socket 和 Shell 进程导致端口占用、重连失败 - 修复
MyBroadcastReceiver.updateUSB中return误用为continue,导致后续 USB 设备被跳过 - 修复
MainActivityURI 为空时 NPE 崩溃 - 修复
DeviceDetailActivity未处理Integer.parseInt异常 - 修复
FullActivityclient 为 null 时死锁
逻辑错误
- 修复
Device.javaappStackId 条件判断反转 - 修复
ClientControllerswitch 语句 default 穿透 - 修复
DbHelper删除设备后默认名称重复 - 修复
DeviceListAdapter随机颜色导致列表闪烁
连接稳定性
- 启动 Server 前清理残留进程,避免端口冲突
- 连接断开时正确释放所有资源
- 启动时主动申请所需权限(悬浮窗、文件读取、前台服务、通知)
- 设备名称默认按序号命名(设备1、设备2、设备3)
- 首页设备列表同时显示设备名称与 IP 地址
- 加载弹窗重构为正方形布局,显示"加载中"
- 使用简单
- 支持音频传输
- 多设备连接
- 支持有线连接
- 多设备剪切板同步
- 多设备共享主控端物理键盘
- 启动迅速,低延迟
- 支持分辨率自适应
- 良好的旋转支持
- 支持小窗显示与全屏显示
- Android 14 / 15 完整适配
- gradle构建环境升级的最新版
- 升级到java17 本项目使用 Android Studio + Gradle 构建。如需自行编译:
# Windows
.\easycontrol\gradlew.bat assembleDebug -p easycontrol
# Linux / macOS
./easycontrol/gradlew assembleDebug -p easycontrol编译产物:easycontrol/app/build/outputs/apk/debug/app-debug.apk
- 原项目:mingzhixian/Easycontrol — 致敬原作者
- Scrcpy:Genymobile/scrcpy — 本项目基于的投屏协议
- ADB 协议文档:cstyan/adbDocumentation
遵循原项目开源协议,保留原作者版权声明。
请在 GitHub 提出 Issue:https://github.com/yutils/Easycontrol/issues


