文章目录
- 1. 目的
- 2. 配置
- 2.0 配置思路
- 2.1 安装 scrcpy 2.0
- 2.2 添加 udev 规则
- 2.3 手机设置权限
- 2.4 开启 scrcpy
1. 目的
打算在电脑上使用手机上的 App,如京东读书,或QQ。不用电脑版对应软件的原因是,电脑上需要重新登录,有些软件没有 Linux 版本。
具体包括这些需求:
- 投屏:把android手机屏幕内容实时投递到电脑屏幕上
- 键鼠操控手机: 例如点击、翻页、音量调节等
我是用的是小米11,Android 系统为13. 电脑是 Ubuntu 22.04 系统。scrcpy 版本是 2.0。
2. 配置
2.0 配置思路
需要安装 adb 命令工具。
安装 scrcpy 这个开源工具。
如果鼠标点击后没反应、部分按键没反应,需要手机开启 USB 模拟权限。
以下具体展开。
2.1 安装 scrcpy 2.0
在 ubuntu 22.04上, 如果是
sudo apt install scrcpy
会安装旧版本 1.2.1 的 scrcpy, 有些功能缺失(例如没有音频支持)。
安装 scrcpy 2.0 的方式为:(非源码编译安装,但需要科学上网)
# for Debian/Ubuntu
sudo apt install ffmpeg libsdl2-2.0-0 adb wget \
gcc git pkg-config meson ninja-build libsdl2-dev \
libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev \
libswresample-dev libusb-1.0-0 libusb-1.0-0-dev
2.2 添加 udev 规则
Windows 用户可忽略这一条。
Linux 用户如果是第一次连接设备需要设置 udev 规则, 也就是通过插拔手机, 获得设备的一些 id, 写到 udev 文件中, 这样才能让 usb 连接后能识别设备。
# 当前处于设备连接状态, 列出所有 USB 设备
lsusb > 1.txt
# 断开D1开发板的 USB 连接, 列出当前所有 USB 设备
lsusb > 2.txt
# 查看 D1 对应的 USB 设备情况
vimdiff 1.txt 2.txt
# 编辑udev规则文件(若没有则新建),添加D1设备到规则中
sudo /etc/udev/rules.d/51-android.rules
# idVendor 和 idProduct, 根据先前 vimdiff 比较得出
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTRS{idProduct}=="d002", MODE="0666"
2.3 手机设置权限
除了常规的 USB 调试权限(没验证,不过作为有 NDK C++开发经历的人来说,通常的都开启了),还需要开启模拟权限,开启后重启手机才可以生效。
2.4 开启 scrcpy
scrcpy --shortcut-mod=lctrl --no-audio
截图就不放了,具体自行体验:
- 电脑上可以操纵手机了
- 手机上操纵后,电脑上实时得到显示结果