如何使用Scrcpy在Linux上镜像Android屏幕
Scrcpy是一个开源应用程序,用于在Linux计算机上镜像和控制Android屏幕。
以下是在Linux上使用Scrcpy的逐步指南:
1. 安装所需包
安装Scrcpy所需的以下包:
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
bash
所需的包之一是adb。使用adb --version命令检查adb安装。如果成功,输出将如下所示:
adb --version
# Android Debug Bridge version 1.0.41
# Version 36.0.0-13206524
# Installed as /home/ibrahim/android-sdk/platform-tools/adb
# Running on Linux 5.10.0-35-amd64 (x86_64)
bash
2. 安装Scrcpy
使用以下命令安装Scrcpy:
sudo apt install scrcpy
bash
如果你想要最新版本的Scrcpy,使用以下脚本安装:
git clone https://github.com/Genymobile/scrcpy
cd scrcpy
./install_release.sh
bash
使用scrcpy --version命令检查scrcpy安装。如果成功,命令输出将如下所示:
scrcpy --version
# scrcpy 1.17

# dependencies:
# - SDL 2.0.14
# - libavcodec 58.91.100
# - libavformat 58.45.100
# - libavutil 56.51.100
bash
3. 连接Android到Linux
使用USB端口将Android设备连接到Linux。
连接Android设备后,通过进入设置 > 开发者选项 > USB调试来在Android设备上启用USB调试。
启用USB调试
如果设置中没有出现开发者选项,请尝试以下步骤:
打开设置 > 关于手机 > Android版本。
在Android版本上点击7次或更多次,直到出现"开发者选项已启用"的通知。
再次在设置中打开开发者选项菜单并启用USB调试。
某些Android设备可能有不同的方法来启用USB调试。
USB调试激活后,通过执行adb devices命令检查Android设备是否成功连接到Linux。如果成功,设备名称应该被列出。
adb devices
# List of devices attached
# R9CW700L3BR device
bash
4. 运行Scrcpy
现在运行scrcpy命令来启动Scrcpy。
scrcpy
bash
如果Scrcpy成功运行,将打开一个新窗口显示Android屏幕,你可以从Linux控制Android设备。
Scrcpy成功运行
高级配置选项
自定义分辨率
你可以指定自定义分辨率来优化性能:
# 设置较低的分辨率以提高性能
scrcpy --max-size 800

# 设置特定的分辨率
scrcpy --max-size 1920x1080
bash
启用音频
Scrcpy 2.0+支持音频传输:
# 启用音频(需要Android 11+)
scrcpy --audio-source=output
bash
录制屏幕
你可以同时录制屏幕:
# 录制到文件
scrcpy --record file.mp4

# 录制并设置比特率
scrcpy --record file.mp4 --video-bit-rate 8M
bash
无线连接
你也可以通过WiFi连接(需要先通过USB连接):
# 1. 首先通过USB连接并启用TCP/IP
adb tcpip 5555

# 2. 断开USB连接

# 3. 通过WiFi连接(替换为你的设备IP
adb connect 192.168.1.100:5555

# 4. 运行scrcpy
scrcpy
bash
性能优化选项
# 降低帧率以提高性能
scrcpy --max-fps 30

# 禁用视频缓冲
scrcpy --no-video-buffer

# 设置编码预设
scrcpy --video-encoder h264_mediacodec
bash
故障排除
设备未检测到
如果adb devices没有显示你的设备:
检查USB连接:确保使用数据线而不是仅充电线
重新启用USB调试:在设备上关闭然后重新启用USB调试
检查USB模式:确保设备设置为"文件传输""MTP"模式
重启ADB服务
adb kill-server
adb start-server
bash
权限问题
如果遇到权限问题:
# 添加用户到plugdev
sudo usermod -a -G plugdev $LOGNAME

# 创建udev规则
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="[你的设备厂商ID]", MODE="0666", GROUP="plugdev"' | sudo tee /etc/udev/rules.d/51-android.rules

# 重新加载udev规则
sudo udevadm control --reload-rules
sudo udevadm trigger
bash
性能问题
如果镜像卡顿或延迟:
# 降低分辨率
scrcpy --max-size 800

# 降低帧率
scrcpy --max-fps 15

# 使用硬件编码
scrcpy --video-encoder h264_mediacodec
bash
实际应用场景
1. 应用开发调试
# 在开发Android应用时使用scrcpy作为模拟器
scrcpy --stay-awake --turn-screen-off
bash
2. 演示和教学
# 录制演示视频
scrcpy --record demo.mp4 --max-size 1280x720
bash
3. 远程控制
# 通过SSH隧道远程控制
ssh user@remote-server -L 5555:localhost:5555
scrcpy --serial localhost:5555
bash
4. 自动化测试
# 结合ADB命令进行自动化测试
adb shell input tap 500 500 # 点击屏幕坐标
scrcpy --no-audio --max-size 800
bash
快捷键
Scrcpy支持以下快捷键:
Ctrl + c:关闭scrcpy
Ctrl + f:切换全屏模式
Ctrl + Shift + f:切换窗口边框
Ctrl + r:旋转屏幕
Ctrl + s:截图
Ctrl + v:粘贴剪贴板内容到设备
Ctrl + Shift + v:从设备复制剪贴板内容
总结
在Linux上镜像Android屏幕有很多用例。例如,我有时在开发Android应用程序时将其用作模拟器。
如果你在按照上述步骤操作时遇到问题,请在下面留下评论,我会尽力帮助。
Aa