Rust Tarui 中的 Scrcpy 客户端,旨在提供控制安卓设备的鼠标和按键映射,类似于游戏模拟器。
Scrcpy-mask
为了实现电脑控制安卓设备,本人使用 Tarui + Vue 3 + Rust 开发了一款跨平台桌面客户端。该客户端能够提供可视化的鼠标和键盘按键映射配置。通过按键映射实现了实现类似安卓模拟器的多点触控操作,具有毫秒级响应速度。该工具可广泛用于电脑控制安卓设备玩手游等等,提供流畅的触控体验。
本项目仅实现了 Scrcpy 控制协议,不提供投屏功能。因为投屏会存在延迟和模糊问题,本项目另辟蹊径,直接放弃投屏,而使用透明的蒙版显示窗口背后的内容(可以使用 AVD 、手机厂商提供的低延迟投屏等),从根本上杜绝了 Scrcpy 的投屏体验差的问题。
特性
- 有线、无线连接安卓设备
- 启动并连接 Scrcpy 服务端
- 实现 Scrcpy 控制协议
- 鼠标和键盘按键映射
- 可视化编辑按键映射配置
- 按键映射配置的导入与导出
- 更新检查
- 在按键映射和插入文本之间切换
- 国际化
- 通过 WebSocket 提供外部控制,见外部控制
- 帮助文档
截图
-
设备控制

-
可视化编辑按键映射配置

-
游戏控制

基本使用
- 从 releases 中安装适合你系统平台的软件包
- 确认你的安卓设备类型
- 对于手机或平板电脑等物理设备
- 你需要自己解决投屏的问题。推荐使用设备品牌的官方投屏方式,这样一般延迟最小。
- 通过 USB 或无线方式在设备上启用 ADB 调试,然后将其连接到电脑。
- 对于模拟器,不仅不需要投屏,而且模拟器通常默认启用 ADB 有线调试。所以几乎不用操作就能获得最好的体验。
- 对于手机或平板电脑等物理设备
- 启动软件并导航到设备页面。
- 在可用的设备中查找你的设备(如果未找到,请自行搜索如何为安装设备启用 ADB 调试)。
- 右击你的设备并选择“获取屏幕大小”。根据获得的屏幕尺寸为参考,正确输入设备的宽度和高度。注意:如果宽度或高度不正确 (例如,在纵向和横向模式下这两个参数是颠倒的),所有触摸操作将被忽略,但是不会有任何错误消息。
- 再次右击设备并选择“控制此设备”。
- 导航到设置页面->蒙版设置,将蒙版的宽度和高度设置为设备大小的一定倍数,以确保蒙版大小合适。
- 导航到蒙版页面,你可以在其中看到一个完全透明的蒙版区域。接下来,调整并移动模拟器窗口或投屏窗口,让其内容区域与透明蒙版区域完全对齐。
- 导航到键映射页面,切换或编辑键映射配置。
- 返回到蒙版界面,开始使用吧!
相关文章:
Rust Tarui 中的 Scrcpy 客户端,旨在提供控制安卓设备的鼠标和按键映射,类似于游戏模拟器。
Scrcpy-mask 为了实现电脑控制安卓设备,本人使用 Tarui Vue 3 Rust 开发了一款跨平台桌面客户端。该客户端能够提供可视化的鼠标和键盘按键映射配置。通过按键映射实现了实现类似安卓模拟器的多点触控操作,具有毫秒级响应速度。该工具可广泛用于电脑控…...
【shell】脚本练习题
案例: 1. for ping测试指网段的主机 网段由用户输入,例如用户输入192.168.2 ,则ping 192.168.2.10 --- 192.168.2.20 UP: /tmp/host_up.txt Down: /tmp/host_down.txt 2. 使用case实现成绩优良差的判断 1. for ping测试指…...
微信小程序uniapp+django洗脚按摩足浴城消费系统springboot
原生wxml开发对Node、预编译器、webpack支持不好,影响开发效率和工程构建。所以都会用uniapp框架开发 前后端分离,后端给接口和API文档,注重前端,接近原生系统 使用Navicat或者其它工具,在mysql中创建对应名称的数据库࿰…...
超链接的魅力:HTML中的 `<a>` 标签全方位探索!
🌐超链接的魅力:HTML中的 标签全方位探索! 🏞️基础营地:认识 <a> 标签🛠️基本语法📚属性扩展 🚀实战演练:超链接的多样玩法🌈内链与外链Ὄ…...
与优秀者同行,“复制经验”是成功的最快捷径
富在术数不在劳身,利在局势不在力耕。我们始终相信,与优秀者同行,“复制经验”才是走向成功的最快“捷径”! 酷雷曼合作商交流会 作为酷雷曼合作商帮扶体系里的重要一环,合作商交流会是总部专门为合作商们搭建的一个博采众长、相…...
MobaXterm使用私钥远程登陆linux
秘钥的形式使用MobaXterm 远程连接 linux 服务器 MobaXterm使用私钥远程登陆linux just填写远程主机 不指定用户 勾选使用私钥 选择私钥即可 1.使用秘钥连接 远程linux 服务器的好处 只需要第一次添加秘钥,并输入密码后,以后再连接就不需要再输入密码…...
Java设计模式(23种设计模式 重点介绍一些常用的)
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:…...
JVM(5):虚拟机性能分析和故障解决工具概述
1 工具概述 作为一个java程序员,最基本的要求就是用java语言编写程序,并能够在jvm虚拟机上正常运行,但是在实际开发过程中,我们所有的程序由于各种各样的原因,并不是总能够正常运行,经常会发生故障或者程序…...
vue3插槽solt 使用
背景增加组件的复用性,个人体验组件化还是react 方便。 Vue插槽solt如何传递具名插槽的数据给子组件? 一、solt 原理 知其然知其所以然 Vue的插槽(slots)是一种分发内容的机制,允许你在组件模板中定义可插入的内容…...
正则项学习笔记
目录 1. L2 正则化 岭回归 1.1 L2 norm计算例子 2. L1 正则化 3. 弹性网正则化 4. Dropout 1. L2 正则化 岭回归 在 PyTorch 中,L2 正则化通常通过设置优化器的 weight_decay 参数实现。以下是一个简单的例子: 介绍博文: 正则化(1)&a…...
Django自定义模板标签与过滤器
title: Django自定义模板标签与过滤器 date: 2024/5/17 18:00:02 updated: 2024/5/17 18:00:02 categories: 后端开发 tags: Django模版自定义标签过滤器开发模板语法Python后端前端集成Web组件 Django模板系统基础 1. Django模板语言概述 Django模板语言(DTL&…...
k8s集群安装后CoreDNS 启动报错plugin/forward: no nameservers found
安装k8s过程中遇到的问题: 基本信息 系统版本:ubuntu 22.04 故障现象: coredns 报错:plugin/forward: no nameservers found 故障排查: #检查coredns的配置,发现有一条转发到/etc/resolv.conf的配置…...
AI图片过拟合如何处理?答案就在其中!
遇到难题不要怕!厚德提问大佬答! 厚德提问大佬答8 你是否对AI绘画感兴趣却无从下手?是否有很多疑问却苦于没有大佬解答带你飞?从此刻开始这些问题都将迎刃而解!你感兴趣的话题,厚德云替你问,你解…...
0基础如何进入IT行业
目录 引言 一、了解IT行业 1.1 IT行业概述 1.2 IT行业的职业前景 二、选择适合的学习路径 2.1 自学 2.2 参加培训班 2.3 高等教育 三、学习基础技能 3.1 编程语言 3.2 数据结构与算法 3.3 计算机基础知识 四、实践与项目经验 4.1 开源项目 4.2 个人项目 4.3 实习…...
一键批量提取TXT文档前N行,高效处理海量文本数据,省时省力新方案!
大量的文本信息充斥着我们的工作与生活。无论是研究资料、项目文档还是市场报告,TXT文本文档都是我们获取和整理信息的重要来源。然而,面对成百上千个TXT文档,如何快速提取所需的关键信息,提高工作效率,成为了许多人头…...
Java-常见面试题收集(十六)
二十五 RocketMQ 1 消息队列介绍 消息队列,简称 MQ(Message Queue),它其实就指消息中间件,当前业界比较流行的开源消息中间件包括:RabbitMQ、RocketMQ、Kafka。(一个使用队列来通信的组件&…...
vue从入门到精通(四):MVVM模型
一,MVVM MVVM(Model–view–viewmodel)是一种软件架构模式。MVVM有助于将图形用户界面的开发与业务逻辑或后端逻辑(数据模型)的开发分离开来。详见MVVM 二,Vue中的MVVM Vue虽然没有完全遵循 MVVM 模型,但是 Vue 的设…...
提供一个c# winform的多语言框架源码,采用json格式作为语言包,使用简单易于管理加载且不卡UI,支持“语言分级”管理
提供一个c# winform的多语言框架源码,采用json格式作为语言包,不使用resx资源,当然本质一样的,你也可以改为resx 一、先看下测试界面 演示了基本的功能:切换语言,如何加载语言,如何分级加载语…...
Docker常见命令
创建并运行容器 例子:docker安装运行mysql docker run -d \ --name mysql \ -p 3306:3306 \ -e TZAsia/Shanghai \ -e MYSQL_ROOT_PASSWORDroot \ -v /root/data/mysql/data:/var/lib/mysql \ -v /root/data/mysql/init:/docker-entrypoint-initdb.d \ -v /root/d…...
中科大6系+先研院+中南大学电子信息学院2023年保研经历
中科大6系 英语口语问题: What’s your research plan?Please introduce your project. 专业课问题: BPSK和QPSK每个字母代表的含义?QAM的星座图是什么样的?根据什么准则画成那个样子? 中科大先研院 …...
别再只用WPF自带的DragDrop了!手把手教你从零封装一个可拖拽合并数据的自定义控件
突破WPF原生拖拽限制:构建高定制化数据合并控件的实战指南 在构建现代企业级桌面应用时,拖拽交互已成为提升用户体验的关键要素。WPF虽然提供了基础的DragDrop API,但当我们需要实现类似看板系统中卡片合并、数据聚合等复杂交互时,…...
得意黑Smiley Sans字体全平台部署与深度应用指南
得意黑Smiley Sans字体全平台部署与深度应用指南 【免费下载链接】smiley-sans 得意黑 Smiley Sans:一款在人文观感和几何特征中寻找平衡的中文黑体 项目地址: https://gitcode.com/gh_mirrors/smi/smiley-sans 1 价值定位:现代设计的字体革新选择…...
如何快速掌握PowerToys中文版:Windows效率提升的终极指南
如何快速掌握PowerToys中文版:Windows效率提升的终极指南 【免费下载链接】PowerToys-CN PowerToys Simplified Chinese Translation 微软增强工具箱 自制汉化 项目地址: https://gitcode.com/gh_mirrors/po/PowerToys-CN 如果你经常在Windows上工作…...
CMake: target_include_directories、target_compile_definitions、target_link_libraries 详解
CMake:target_include_directories、target_compile_definitions、target_link_libraries 详解 目录 概述一、PRIVATE / PUBLIC / INTERFACE 作用域二、传递机制与依赖方向(示意)三、target_include_directories四、target_compile_definit…...
GLM-4-9B-Chat-1M镜像升级路径:从GLM-4-9B-Chat到1M版本的权重转换与验证
GLM-4-9B-Chat-1M镜像升级路径:从GLM-4-9B-Chat到1M版本的权重转换与验证 如果你正在使用GLM-4-9B-Chat模型,并且被它128K的上下文长度所吸引,那么现在有个好消息:它的“超级加强版”来了。GLM-4-9B-Chat-1M版本,直接…...
卡证检测模型自动化测试:Python脚本构建测试用例
卡证检测模型自动化测试:Python脚本构建测试用例 最近在部署一个卡证检测模型服务,上线前心里总有点不踏实。模型在开发环境跑得挺好,但真放到线上,面对各种五花八门的证件图片——光线暗的、角度歪的、背景杂乱的——它能扛得住…...
告别手动打字!深求·墨鉴极简文档解析,3步搞定图片转Markdown
告别手动打字!深求墨鉴极简文档解析,3步搞定图片转Markdown 1. 为什么需要图片转Markdown工具 在日常工作和学习中,我们经常会遇到需要将图片中的文字内容转换为可编辑文本的情况。传统的手动打字方式不仅效率低下,还容易出错。…...
告别复杂配置:一键启动MedGemma-X,开启智能阅片新体验
告别复杂配置:一键启动MedGemma-X,开启智能阅片新体验 1. 医疗影像AI的新范式:从标注工具到对话伙伴 1.1 传统影像分析系统的局限性 在放射科日常工作中,医生们常常面临这样的困境:面对一张胸部X光片,需…...
从课程设计到毕业设计:手把手教你用STC89C52和DS1302做一个带温度显示的电子钟(附完整代码)
从课程设计到毕业设计:STC89C52与DS1302打造高精度温度显示电子钟实战指南 1. 项目规划与硬件选型 在开始动手之前,我们需要对整个项目进行系统性的规划。一个完整的电子钟系统需要考虑时间显示、温度监测、用户交互和电源管理等多个功能模块。对于高校电…...
otp:Go语言一次性密码库入门指南 - 5分钟快速上手双因素认证
otp:Go语言一次性密码库入门指南 - 5分钟快速上手双因素认证 【免费下载链接】otp TOTP library for Go 项目地址: https://gitcode.com/gh_mirrors/otp/otp 在当今网络安全威胁日益严峻的环境下,一次性密码(OTP)已成为保护…...
