使用 scrcpy 从桌面控制 Android 设备(Ubuntu, Fedora, Debian, Linux Mint 安装)

[ad_1]

scrcpy 是一个免费的开源应用程序,用于显示和控制通过 USB(或无线,但性能较低)从 Linux、Windows 或 macOS 桌面连接的 Android 设备。

它至少需要 Android 5.0,并在 Android 设备上启用 adb 调试。 不需要根访问权限。

scrcpy 专注于亮度、性能和质量,提供 30~60 FPS,分辨率为 1920×1080 或更高
. 它还有一个
低延迟
,介于 70 到 100 毫秒之间。 我必须说,当我第一次尝试 scrcpy 时,它的性能让我感到惊讶,几乎感觉就像我手里拿着 Android 设备,而不是从我的 Linux 台式计算机远程使用它。

服务器(本例中为 Android 设备)和客户端(台式计算机)之间的通信是通过 adb 隧道上的套接字完成的。 服务端流式传输设备屏幕的H.264视频,传给客户端解码显示,
没有缓冲以最小化延迟
. 鼠标和键盘事件被捕获并传输到服务器,服务器将它们注入 Android 设备。

特征:

  • 从运行 Linux、Windows 或 macOS 的桌面(使用鼠标和键盘)控制 Android 设备
  • 通过 USB 或 WiFi 工作(尽管通过 WiFi 使用时性能会降低)
  • 允许在镜像时录制 Android 屏幕
  • 可以限制安卓镜像分辨率宽高
  • 允许更改视频比特率
  • 可以裁剪设备屏幕
  • 可以同时镜像多个设备
  • scrcpy 应用程序可以直接全屏启动
  • 对于演示,scrcpy 可以显示 Android 设备上的物理触摸(仅物理触摸,用手指在设备上!)
  • 通过将APK拖放到scrcpy窗口来安装APK,或将文件推送到设备 /sdcard 通过拖放非 APK 文件
  • 只读模式可禁用使用输入键、鼠标事件和拖放进行交互

音频转发不起作用,这是 Android 开放附件协议的限制。

如果您觉得质量不是最好的(例如字体或渐变),那很可能是因为屏幕缩小了。 将 Android 设备切换到横向模式,然后全屏运行 scrcpy (
Ctrl + F

) 以获得更好的质量。

还值得注意的是,“scrcpy”名称来自“屏幕复制”。 这应该更容易记住?️。

scrcpy 可以从 https://github.com/Genymobile/scrcpy 下载,开发人员为 Microsoft Windows 提供预编译的二进制文件,并为 macOS 提供 Homebrew 包。 有一个 Arch Linux AUR 包,还有一个 Gentoo Ebuild 可用。

安卓相关:

  • Anbox:如何安装 Google Play 商店并启用 ARM (libhoudini) 支持,简单的方法
  • 使用 GSConnect 将您的 Android 手机与不依赖 KDE 的 Gnome Shell 集成

在 Ubuntu 上安装 scrcpy, Fedora、Debian 或 Linux Mint

[[Edit]]scrcpy 现在位于官方 Pop!_OS / Ubuntu 20.04、20.10 和 21.04 存储库(以及 Linux Mint 20.x)以及 Debian Sid(但它可能不是最新版本)中。 安装它使用:

sudo apt install scrcpy

[[Edit]]scrcpy 现在可以安装在 Fedora 使用 Copr 存储库。 添加存储库并按如下方式安装它:

sudo dnf copr enable zeno/scrcpy
sudo dnf install scrcpy

以下说明用于在 Debian / Ubuntu / Linux Mint 和 Fedora. 这样你就可以安装最新版本,无论是什么版本的 Debian / Ubuntu / Linux Mint 或 Fedora 你正在使用。

我发现 Linux 的官方 scrcpy 构建说明有点混乱,所以我决定尝试让它们更简单。 Snap 商店中有一个新的非官方 scrcpy snap 包,但它在我的 Ubuntu 18.10 桌面上不起作用,所以它可能还需要一些工作。 scrcpy 包现在可以使用,因此您可以使用 scrcpy snap 包更轻松地安装应用程序。

我尝试了以下步骤,并在 Ubuntu 18.10 和 18.04 上尝试了 scrcpy,并且 Fedora 29. 由于 Ubuntu 基于 Debian,而 Linux Mint 基于 Ubuntu,它应该也可以在这些以及其他基于 Debian 或 Ubuntu 的 Linux 发行版上运行。

1. 安装在 Debian、Ubuntu 和 Linux Mint 上构建和运行 scrcpy 所需的依赖项,或 Fedora.

  • Debian、Ubuntu 或 Linux Mint
sudo apt install adb ffmpeg libsdl2-2.0-0 make gcc pkg-config meson ninja-build libavcodec-dev libavformat-dev libavutil-dev libsdl2-dev

  • Fedora (第一个命令启用 RPMFusion 存储库 – 如果它已在您的 Fedora 机器):
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install android-tools ffmpeg SDL2-devel ffms2-devel meson gcc make

值得注意的是,需要 Meson 0.37 或更高版本(如果您使用的是 Ubuntu 16.04,请启用 Backports 存储库以便能够安装更新的 Meson 版本)。 与官方构建说明相反,OpenJDK 不包含在我的指南中,因为它使用预编译的 scrcpy-server jar,使事情变得更容易。

这些是唯一特定于发行版的说明,因此如果您知道如何为其他一些 Linux 发行版安装这些依赖项(可能有不同的名称,具体取决于您使用的 Linux 发行版),其他步骤应该是相同的。

2. 下载并安装 scrcpy 服务器 jar。

下载最新的 scrcpy-server-v*.jar 从应用程序发布页面,并将其放在您的主文件夹中。 如果文件没有 .jar 扩展名,重命名并自己添加。

接下来,安装到 /usr/local/bin (即使它也将安装在 /usr/local/share/scrcpy,由于某种原因,scrcpy 在 /usr/local/bin):

sudo install scrcpy-server-v*.jar /usr/local/bin/scrcpy-server.jar

3. 下载最新的 scrcpy 发布源代码并将其解压到您的主文件夹中。

下载 scrcpy 源代码( .tar.gz 例如存档)从应用程序发布页面,并将其解压缩到您的主目录中的一个名为的文件夹中 scrcpy (从 scrcpy 文件夹名称中删除版本号 – 这样可以更轻松地在未来的 scrcpy 版本中使用这些说明)。

主文件夹现在应该有一个名为 scrcpy-server-v*.jar (例如 scrcpy-server-v1.17.jar 对于 scrcpy v1.17),以及一个名为 scrcpy.

4. 构建并安装 scrcpy。

要构建 scrcpy,我们将导航到 scrcpy 文件夹,构建应用程序并安装它:

cd scrcpy

meson build --buildtype release --strip -Db_lto=true  -Dprebuilt_server=../scrcpy-server-v1.17.jar

cd build

ninja

sudo ninja install

如果您要安装不同的 scrcpy 版本,请替换 scrcpy-server-v1.17.jar 来自第二个命令,其中包含您正在安装的版本的确切文件名。

如果您愿意,您现在可以从主目录中删除 scrcpy 文件夹。

如何在 Linux 上使用 scrcpy 从 Linux 桌面控制 Android 设备(或记录其屏幕)

我已经在文章开头提到了这一点,但我想我应该再说一遍。 您需要 Android 5.0 或更高版本的设备才能使用 scrcpy 从桌面控制它。 更重要的是,请确保在您的 Android 设备上启用 adb 调试。 在某些设备上,您可能还需要启用额外的“USB 调试(安全设置)”选项才能从台式计算机控制 Android 设备。

要使用 scrcpy,请通过 USB 将 Android 设备连接到计算机,然后在终端中运行 scrcpy:

scrcpy

如果您没有使用 adb 为您的 Android 设备授权当前计算机,第一次运行 scrcpy 时请确保 Android 设备屏幕已解锁,并且您授权 scrcpy(单击 OK 在要求授权时在 Android 设备上)!

还值得注意的是,就我而言,在我之前没有运行 adb 的计算机上,我必须运行 scrcpy 3 次直到它工作(它可能没有等待足够的时间进行授权),所以你可能想要也这样做,以防它不能立即工作:

[email protected]:~$ scrcpy
* daemon not running. starting it now on port 5037 *
free(): invalid next size (fast)
ADB server didn't ACK
* failed to start daemon *
adb: error: connect failed: cannot connect to daemon
ERROR: "adb push" returned with value 1

[email protected]:~$ scrcpy
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
adb: error: connect failed: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
ERROR: "adb push" returned with value 1

[email protected]:~$ scrcpy
[100%] /data/local/tmp/scrcpy-server.jar
INFO: Initial texture: 1440x2560

想要记录 Android 屏幕,同时使用桌面(使用键盘和鼠标)控制 Android 设备? 运行 scrcpy --record 后跟要录制到的文件名,以 mkv 或 mp4 作为扩展名。 例如:

scrcpy --record file.mp4

你可能想知道 从桌面控制 Android 设备时如何返回到上一个屏幕、转到主屏幕或使用应用程序切换器,对于具有物理键的设备 – 您可以使用一些快捷方式:

  • 老鼠 right-click 或者 Ctrl + b (或者 Ctrl + Backspace) 返回
  • 老鼠 middle-click 或者 Ctrl + h (或者 Home 按钮)用于 HOME
  • Ctrl + s 对于应用切换器

有关如何从桌面无线控制 Android 设备,请参阅应用程序项目页面上的详细说明。 另请参阅 scrcpy 页面了解更多高级用法,例如减小镜像屏幕尺寸、更改比特率、裁剪屏幕或在多个 Android 设备上运行多个 scrcpy 实例。

如何卸载 scrcpy(从源代码安装)

想要删除从源安装的 scrcpy 的用户(使用本文中的说明),可以运行以下两个命令:

sudo rm /usr/local/share/scrcpy/scrcpy-server.jar
sudo rm /usr/local/bin/scrcpy-server.jar
sudo rm /usr/local/bin/scrcpy

[ad_2]

Related Posts