如何使用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
所需的包之一是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)
2. 安装Scrcpy
使用以下命令安装Scrcpy:
- sudo apt install scrcpy
如果你想要最新版本的Scrcpy,使用以下脚本安装:
- git clone https://github.com/Genymobile/scrcpy
- cd scrcpy
- ./install_release.sh
使用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
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
4. 运行Scrcpy
现在运行scrcpy命令来启动Scrcpy。
- scrcpy
如果Scrcpy成功运行,将打开一个新窗口显示Android屏幕,你可以从Linux控制Android设备。
Scrcpy成功运行
高级配置选项
自定义分辨率
你可以指定自定义分辨率来优化性能:
- # 设置较低的分辨率以提高性能
- scrcpy --max-size 800
- # 设置特定的分辨率
- scrcpy --max-size 1920x1080
启用音频
Scrcpy 2.0+支持音频传输:
- # 启用音频(需要Android 11+)
- scrcpy --audio-source=output
录制屏幕
你可以同时录制屏幕:
- # 录制到文件
- scrcpy --record file.mp4
- # 录制并设置比特率
- scrcpy --record file.mp4 --video-bit-rate 8M
无线连接
你也可以通过WiFi连接(需要先通过USB连接):
- # 1. 首先通过USB连接并启用TCP/IP
- adb tcpip 5555
- # 2. 断开USB连接
- # 3. 通过WiFi连接(替换为你的设备IP)
- adb connect 192.168.1.100:5555
- # 4. 运行scrcpy
- scrcpy
性能优化选项
- # 降低帧率以提高性能
- scrcpy --max-fps 30
- # 禁用视频缓冲
- scrcpy --no-video-buffer
- # 设置编码预设
- scrcpy --video-encoder h264_mediacodec
故障排除
设备未检测到
如果adb devices没有显示你的设备:
检查USB连接:确保使用数据线而不是仅充电线
重新启用USB调试:在设备上关闭然后重新启用USB调试
检查USB模式:确保设备设置为"文件传输"或"MTP"模式
重启ADB服务:
- adb kill-server
- adb start-server
权限问题
如果遇到权限问题:
- # 添加用户到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
性能问题
如果镜像卡顿或延迟:
- # 降低分辨率
- scrcpy --max-size 800
- # 降低帧率
- scrcpy --max-fps 15
- # 使用硬件编码
- scrcpy --video-encoder h264_mediacodec
实际应用场景
1. 应用开发调试
- # 在开发Android应用时使用scrcpy作为模拟器
- scrcpy --stay-awake --turn-screen-off
2. 演示和教学
- # 录制演示视频
- scrcpy --record demo.mp4 --max-size 1280x720
3. 远程控制
- # 通过SSH隧道远程控制
- ssh user@remote-server -L 5555:localhost:5555
- scrcpy --serial localhost:5555
4. 自动化测试
- # 结合ADB命令进行自动化测试
- adb shell input tap 500 500 # 点击屏幕坐标
- scrcpy --no-audio --max-size 800
快捷键
Scrcpy支持以下快捷键:
Ctrl + c:关闭scrcpy
Ctrl + f:切换全屏模式
Ctrl + Shift + f:切换窗口边框
Ctrl + r:旋转屏幕
Ctrl + s:截图
Ctrl + v:粘贴剪贴板内容到设备
Ctrl + Shift + v:从设备复制剪贴板内容
总结
在Linux上镜像Android屏幕有很多用例。例如,我有时在开发Android应用程序时将其用作模拟器。
如果你在按照上述步骤操作时遇到问题,请在下面留下评论,我会尽力帮助。
