Linux-控制安卓手机工具
1- 杨CC有话说
因为我个人测试软件,然后需要控制安卓手机,但是呢,我个人是Linux电脑,所以我需要一个工具,用来远程控制安卓手机,随后在Linux中,找到了这个工具,随后我就编写了这一个文章.
而且,这款工具,支持安卓群控,可以同时控制多台安卓手机,也支持安卓模拟器,可以用来板砖.
2- 功能介绍
QtScrcpy 可以通过 USB / 网络连接Android设备,并进行显示和控制。无需root权限。
同时支持 GNU/Linux ,Windows 和 MacOS 三大主流桌面平台。
它专注于:
精致 (仅显示设备屏幕)
性能 (30~60fps)
质量 (1920×1080以上)
低延迟 (35~70ms)
快速启动 (1s 内就可以看到第一帧图像)
非侵入性 (不在设备上安装任何软件)
无需root
3- QtScrcpy 和 Scrcpy区别
关键点 | scrcpy | QtScrcpy |
---|---|---|
界面 | sdl | qt |
视频解码 | ffmpeg | ffmpeg |
视频渲染 | sdl | opengl |
跨平台基础设施 | 自己封装 | Qt |
编程语言 | C | C++ |
编程方式 | 同步 | 异步 |
按键映射 | 不支持自定义 | 支持自定义按键映射 |
编译方式 | Meson+Gradle | CMake |
- 使用Qt可以非常容易的定制自己的界面
- 基于Qt的信号槽机制的异步编程提高性能
- 方便新手学习
- 增加多点触控支持
4- 要求
Android 部分至少需要 API 21(Android 5.0)。
您要确保在 Android 设备上启用adb调试。
5- 下载
Windows 平台,你可以直接使用我编译好的可执行程序:
Mac OS
Mac OS 平台,你可以直接使用我编译好的可执行程序:
Linux
对于 Arch Linux 用户,可以使用 AUR 安装:yay -Syu qtscrcpy
(可能版本并非最新;维护者:yochananmarqos)
其他发行版的用户可以直接使用我编译好的可执行程序:
你也可以从 GitHub Actions 获取最新的自动编译好的软件
6- 运行
在你的电脑上接入Android设备,然后运行程序,点击 一键USB连接
或者 一键WIFI连接
6.1 无线连接步骤
- 将手机和电脑连接到同一局域网
- 安卓手机端在开发者选项中打开 USB 调试
- 通过 USB 连接安卓手机到电脑
- 点击刷新设备,会看到有设备号更新出来
- 点击获取设备 IP
- 点击启动 adbd
- 无线连接
- 再次点击刷新设备,发现多出了一个 IP 地址开头的设备,选择这个设备
- 启动服务
备注:启动 adbd 以后无需继续连接 USB 线,以后连接断开都不再需要,除非 adbd 停止运行
6.2 界面解释
启动配置:启动服务前的功能参数设置
分别可以设置本地录制视频的比特率、分辨率、录制格式、录像保存路径等。
- 仅后台录制:启动服务不显示界面,只录制 Android 设备屏幕
- 窗口置顶:Android 设备显示窗口置顶
- 自动息屏:启动服务以后,自动关闭 Android 设备屏幕以节省电量
- 使用 Reverse:服务启动模式,出现服务启动失败报错 “more than one device” 可以去掉这个勾选尝试连接
刷新设备列表:刷新当前连接的设备
启动服务:连接到 Android 设备
停止服务:断开与 Android 设备的连接
停止所有服务:断开所有已连接的 Android 设备
获取设备ip:获取到 Android 设备的 IP 地址,更新到无线区域中,方便进行无线连接
启动adbd:启动 Android 设备的 adbd 服务,无线连接之前,必须要启动
无线连接:使用无线方式连接 Android 设备
无线断开:断开无线方式连接的 Android 设备
命令行:执行自定义 adb 命令(目前不支持阻塞命令,例如shell)
6.3 功能
- 实时显示 Android 设备屏幕
- 实时键鼠控制Android设备
- 屏幕录制
- 截图
- 无线连接
- 多设备连接与批量操作
- 全屏显示
- 窗口置顶
- 安装 apk:拖拽apk到显示窗口即可安装
- 传输文件:拖拽文件到显示窗口即可发送文件到 Android 设备
- 后台录制:只录制屏幕,不显示界面
- 剪贴板同步:
在计算机和设备之间同步剪贴板:Ctrl + c
将设备剪贴板复制到计算机剪贴板;Ctrl + Shift + v
将计算机剪贴板复制到设备剪贴板;Ctrl + v
将计算机剪贴板作为一系列文本事件发送到设备(不支持非ASCII字符)
- 同步设备扬声器声音到电脑(基于sndcpy,仅支持安卓10级以上,目前不推荐使用,可使用蓝牙连接替代)
7- 快捷键
功能 | 快捷键(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 |
鼠标左键双击黑色区域可以去除黑色区域
如果电源关闭,鼠标右键双击打开电源;如果电源开启,鼠标右键双击相当于返回
8- 编译QtScrcpy(如果你想自己编译)
非 Arch Linux
- 使用官方 Qt Installer 或非官方工具(如 aqt)在目标平台上搭建Qt开发环境。
需要 5.12 以上版本 Qt(在 Windows 上使用 MSVC 2019) - 克隆该项目:
git clone --recurse-submodules git@github.com:barry-ran/QtScrcpy.git
- Windows 使用 QtCreator 打开项目下 CMakeLists.txt 并编译 Release
- Linux 用终端执行
./ci/linux/build_for_linux.sh "Release"
注:编译结果位于output/x64/Release
中
Arch Linux
- 安装以下包:
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
中
Scrcpy-Server
- 目标平台上搭建 Android 开发环境
- 使用 Android Studio 打开项目根目录中的 server
- 第一次打开时,如果你没有对应版本的 Gradle,Studio 会提示找不到 Gradle,是否升级 Gradle 并创建,选择取消,取消后会提示选择 Gradle 的位置,同样取消即可。Studio 会随后自动下载。
- 按需编辑代码
- 编译出 apk 以后改名为 scrcpy-server 并替换
third_party/scrcpy-server
即可
9- 结束语
该工具作者介绍
Barry 的 CSDN
一枚普通的程序员,工作中主要使用 C++ 进行桌面客户端开发,一毕业在山东做过一年多钢铁仿真教育软件,后来转战上海先后从事安防,在线教育相关领域工作,对音视频比较熟悉,对音视频领域如语音通话,直播教育,视频会议等相关解决方案有所了解。同时具有Android,Linux服务器等开发经验。
其他结束语
- 需要技术文章,记得将ycc77.com 添加到书签栏哦~
- 需要资源,记得将ycc77.cn 添加到书签栏哦~
- QQ交流群:660264846
- B站: 疯狂的杨CC
- 抖音: 疯狂的杨CC
- 快手: 疯狂的杨CC
- 公众号:SGY安全
- 91: 疯狂的杨CC
- p站: 疯狂的杨CC