QtScrcpy 可以通过 USB / 网络连接Android设备,并进行显示和控制。无需root权限。
同时支持 GNU/Linux ,Windows 和 MacOS 三大主流桌面平台。
完整代码下载地址:C++版Android实时投屏软件系统源码
它专注于:



可以根据需要,自己编写脚本将键盘按键映射为手机的触摸点击,编写规则在这里。
默认自带了针对和平精英手游和抖音进行键鼠映射的映射脚本,开启平精英手游后可以用键鼠像玩端游一样玩和平精英手游,开启抖音映射以后可以使用上下左右方向键模拟上下左右滑动,你也可以按照编写规则编写其他游戏的映射文件,默认按键映射如下:

自定义按键映射操作方法如下:
~(即脚本中定义的 SwitchKey)键切换为自定义映射模式即可启用你可以同时控制所有的手机

基于Genymobile的scrcpy项目进行复刻,重构,非常感谢。
QtScrcpy 和 Scrcpy 区别如下:
| 关键点 | scrcpy | QtScrcpy |
|---|---|---|
| 界面 | sdl | qt |
| 视频解码 | ffmpeg | ffmpeg |
| 视频渲染 | sdl | opengl |
| 跨平台基础设施 | 自己封装 | Qt |
| 编程语言 | C | C++ |
| 编程方式 | 同步 | 异步 |
| 按键映射 | 不支持自定义 | 支持自定义按键映射 |
| 编译方式 | Meson+Gradle | CMake |
Android 部分至少需要 API 21(Android 5.0)。
您要确保在 Android 设备上启用adb调试。
在你的电脑上接入Android设备,然后运行程序,点击 一键USB连接 或者 一键WIFI连接
备注:启动 adbd 以后无需继续连接 USB 线,以后连接断开都不再需要,除非 adbd 停止运行
启动配置:启动服务前的功能参数设置
分别可以设置本地录制视频的比特率、分辨率、录制格式、录像保存路径等。
刷新设备列表:刷新当前连接的设备
启动服务:连接到 Android 设备
停止服务:断开与 Android 设备的连接
停止所有服务:断开所有已连接的 Android 设备
获取设备ip:获取到 Android 设备的 IP 地址,更新到无线区域中,方便进行无线连接
启动adbd:启动 Android 设备的 adbd 服务,无线连接之前,必须要启动
无线连接:使用无线方式连接 Android 设备
无线断开:断开无线方式连接的 Android 设备
命令行:执行自定义 adb 命令(目前不支持阻塞命令,例如shell)
Ctrl + c将设备剪贴板复制到计算机剪贴板;Ctrl + Shift + v将计算机剪贴板复制到设备剪贴板;Ctrl + v 将计算机剪贴板作为一系列文本事件发送到设备(不支持非ASCII字符)| 功能 | 快捷键(Windows) | 快捷键 (macOS) |
|---|---|---|
| 切换全屏 | Ctrl+f | Cmd+f |
| 调整窗口大小为 1:1 | Ctrl+g | Cmd+g |
| 调整窗口大小去除黑边 | Ctrl+w | 左键双击 | Cmd+w | 左键双击 |
点击 主页 | Ctrl+h | 点击鼠标中键 | Ctrl+h | 点击鼠标中键 |
点击 BACK | Ctrl+b | 右键双击 | Cmd+b | 右键双击 |
点击 APP_SWITCH | Ctrl+s | Cmd+s |
点击 MENU | Ctrl+m | Ctrl+m |
点击 VOLUME_UP | Ctrl+↑ (上) | Cmd+↑ (上) |
点击 VOLUME_DOWN | Ctrl+↓ (下) | Cmd+↓ (下) |
点击 POWER | Ctrl+p | Cmd+p |
| 打开电源 | 右键双击 | 右键双击 |
| 关闭屏幕 (保持投屏) | Ctrl+o | Cmd+o |
| 打开下拉菜单 | Ctrl+n | Cmd+n |
| 关闭下拉菜单 | Ctrl+Shift+n | Cmd+Shift+n |
| 复制到剪切板 | Ctrl+c | Cmd+c |
| 剪切到剪切板 | Ctrl+x | Cmd+x |
| 同步剪切板并粘贴 | Ctrl+v | Cmd+v |
| 注入电脑剪切板文本 | Ctrl+Shift+v | Cmd+Shift+v |
鼠标左键双击黑色区域可以去除黑色区域
如果电源关闭,鼠标右键双击打开电源;如果电源开启,鼠标右键双击相当于返回
综合起来有以下几个原因,比重从大到小排列:
尽量提供了所有依赖资源,方便傻瓜式编译。
git clone --recurse-submodules git@github.com:barry-ran/QtScrcpy.git./ci/linux/build_for_linux.sh "Release"output/x64/Release 中qt5-base qt5-multimedia qt5-x11extras(推荐安装 qtcreator)git clone --recurse-submodules git@github.com:barry-ran/QtScrcpy.git./ci/linux/build_for_linux.sh "Release"output/x64/Release 中third_party/scrcpy-server 即可rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送
其实做自媒体的成本并不高,入门只需要一部手机即可!在手机上找视频素材、使用手机剪辑视频、最后使用手机发布视频作品获得收益!方法并不难,今天这期内容就来给粉丝们分享一种小方法,每天稳定收益100-300,抓紧点赞收藏!1、找素材(1)使用手机拍摄自己喜欢的经典段落,使用程序把文案内容提取出来(2)也可以在豆瓣、知乎、微博等网站中找一些自己需要的文案素材(3)把文案进行润色修改,可以加入一些自己的观点(4)视频素材可以使用软件中自带的素材,也可以在素材网站中下载完整版的素材2、文案配音(1)把复制好的文案直接导入小程序中(2)调整音色、音调后一键合成音频即可(3)可以选择自己朗读配音,需要花一点时
一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
大家好,我正在尝试设置一个开发环境,并且我一直在关注以下教程:Linktotutorial我做得不是很好,除了最基本的版本控制内容外,我对终端命令没有任何实际经验。我点击了第一个链接并尝试运行source~/.bash_profile我得到了错误;mkdir:/usr/local/rbenv/shims:权限被拒绝mkdir:/usr/local/rbenv/versions:权限被拒绝现在每次我加载终端时都会出现错误。bash_profile的内容;exportPATH=/usr/local/rbenv/bin:$PATHexportRBENV_ROOT=/usr/local/rbe
我想在共享服务器上建立一个jekyll博客。当我尝试安装Jekyll时,我得到“您没有写权限”。我该如何在没有root或sudo的情况下解决这个问题?更多细节:我在共享服务器上有空间,但没有根访问权限。我无法安装Ruby,尽管托管公司应我的要求安装了它。当我尝试安装Jekyll时我使用user@hosting.org[~]#geminstalljekyll这是我得到的回应:ERROR:Whileexecutinggem...(Gem::FilePermissionError)Youdon'thavewritepermissionsintothe/usr/lib/ruby/gems/1.
我正在尝试找出一种方法来显示来自不在RAILS_ROOT下(在RedHat或Ubuntu环境中)的已安装文件系统的图像。我不想使用符号链接(symboliclink),因为这个应用程序实际上是通过Tomcat部署的,而当我关闭Tomcat时,Tomcat会尝试跟随符号链接(symboliclink)并删除挂载中的所有图像。由于这些文件的数量和大小,将图像放在public/images下也不是一种选择。我查看了send_file,但它只会显示一张图片。我需要在一个格式良好的页面中显示6个请求的图像。由于膨胀,我宁愿不使用Base64编码,但我不知道如何将图像数据与呈现的页面一起传递下去。
我正在为我的用户实现一些rubyonrails代码推特内容。我正在创建正确的oauth链接...类似http://twitter.com/oauth/authorize?oauth_token=y2RkuftYAEkbEuIF7zKMuzWN30O2XxM8U9j0egtzKv但在我的测试帐户授予对twitter的访问权限后,它会弹出一个页面,上面写着“您已成功授予对.我不知道用户应该在哪里输入此PIN以及他们为什么必须这样做。我认为这不是必要的步骤。Twitter应该将用户重定向到我在应用程序设置中提供的回调URL。有谁知道为什么会这样?更新我找到了thisarticle声明我需
我正在关注Ryan的RailsCast第339集。我已经安装了rbenv并且可以运行ruby-v。我退出了我的session,当我试图返回时(通过root的sudeployer,我得到了这个错误/home/deployer/.rbenv/bin/rbenv:line20:cd:/root:Permissiondenied这是rbenv文件:#!/usr/bin/envbashset-e[-n"$RBENV_DEBUG"]&&set-xresolve_link(){$(type-pgreadlinkreadlink|head-1)"$1"}abs_dirname(){localcwd="