如何使用Scrcpy在Linux上镜像Android屏幕

Scrcpy是一个开源应用程序,用于在Linux计算机上镜像和控制Android屏幕。
以下是在Linux上使用Scrcpy的逐步指南:
1. 安装所需包
安装Scrcpy所需的以下包:
  1. sudo apt install ffmpeg libsdl2-2.0-0 adb wget \
  2. gcc git pkg-config meson ninja-build libsdl2-dev \
  3. libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev \
  4. libswresample-dev libusb-1.0-0 libusb-1.0-0-dev
bash
所需的包之一是adb。使用adb --version命令检查adb安装。如果成功,输出将如下所示:
  1. adb --version
  2. # Android Debug Bridge version 1.0.41
  3. # Version 36.0.0-13206524
  4. # Installed as /home/ibrahim/android-sdk/platform-tools/adb
  5. # Running on Linux 5.10.0-35-amd64 (x86_64)
bash
2. 安装Scrcpy
使用以下命令安装Scrcpy:
  1. sudo apt install scrcpy
bash
如果你想要最新版本的Scrcpy,使用以下脚本安装:
  1. git clone https://github.com/Genymobile/scrcpy
  2. cd scrcpy
  3. ./install_release.sh
bash
使用scrcpy --version命令检查scrcpy安装。如果成功,命令输出将如下所示:
  1. scrcpy --version
  2. # scrcpy 1.17

  3. # dependencies:
  4. # - SDL 2.0.14
  5. # - libavcodec 58.91.100
  6. # - libavformat 58.45.100
  7. # - 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。如果成功,设备名称应该被列出。
  1. adb devices
  2. # List of devices attached
  3. # R9CW700L3BR device
bash
4. 运行Scrcpy
现在运行scrcpy命令来启动Scrcpy。
  1. scrcpy
bash
如果Scrcpy成功运行,将打开一个新窗口显示Android屏幕,你可以从Linux控制Android设备。
Scrcpy成功运行
高级配置选项
自定义分辨率
你可以指定自定义分辨率来优化性能:
  1. # 设置较低的分辨率以提高性能
  2. scrcpy --max-size 800

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

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

  3. # 2. 断开USB连接

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

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

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

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

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

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

  3. # 降低帧率
  4. scrcpy --max-fps 15

  5. # 使用硬件编码
  6. scrcpy --video-encoder h264_mediacodec
bash
实际应用场景
1. 应用开发调试
  1. # 在开发Android应用时使用scrcpy作为模拟器
  2. scrcpy --stay-awake --turn-screen-off
bash
2. 演示和教学
  1. # 录制演示视频
  2. scrcpy --record demo.mp4 --max-size 1280x720
bash
3. 远程控制
  1. # 通过SSH隧道远程控制
  2. ssh user@remote-server -L 5555:localhost:5555
  3. scrcpy --serial localhost:5555
bash
4. 自动化测试
  1. # 结合ADB命令进行自动化测试
  2. adb shell input tap 500 500 # 点击屏幕坐标
  3. 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应用程序时将其用作模拟器。
如果你在按照上述步骤操作时遇到问题,请在下面留下评论,我会尽力帮助。