From a5b72e60754e8c814ef838d42918911912e52625 Mon Sep 17 00:00:00 2001 From: Moe <35591595+Moe23333@users.noreply.github.com> Date: Tue, 13 Dec 2022 16:22:29 +0800 Subject: [PATCH] i18n: update zh_CN README to latest version --- README.zh-Hans.md | 229 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 158 insertions(+), 71 deletions(-) diff --git a/README.zh-Hans.md b/README.zh-Hans.md index c85f2e2..ea82999 100644 --- a/README.zh-Hans.md +++ b/README.zh-Hans.md @@ -1,24 +1,24 @@ _Only the original [README] is guaranteed to be up-to-date._ -_只有原版的 [README]是保证最新的。_ +_只有原版的 [README] 是保证最新的。_ [README]: https://github.com/Genymobile/scrcpy/blob/master/README.md -Current version is based on [f4c7044] +Current version is based on [c00a9ea] -本文根据[f4c7044]进行翻译。 +本文根据 [c00a9ea] 进行翻译。 -[f4c7044]: https://github.com/Genymobile/scrcpy/blob/f4c7044b46ae28eb64cb5e1a15c9649a44023c70/README.md +[c00a9ea]: https://github.com/Genymobile/scrcpy/blob/c00a9ead5e383b00d6b36464c2b234909720f095/README.md -# scrcpy (v1.22) +# scrcpy (v1.24) -scrcpy +scrcpy _发音为 "**scr**een **c**o**py**"_ -本应用程序可以显示并控制通过 USB (或 [TCP/IP][article-tcpip]) 连接的安卓设备,且不需要任何 _root_ 权限。本程序支持 _GNU/Linux_, _Windows_ 和 _macOS_。 +本应用程序可以显示并控制通过 USB 或 [TCP/IP][article-tcpip] 连接的安卓设备,且不需要任何 _root_ 权限。本程序支持 _GNU/Linux_, _Windows_ 和 _macOS_。 -![screenshot](assets/screenshot-debian-600.jpg) +![screenshot](https://raw.githubusercontent.com/Genymobile/scrcpy/master/assets/screenshot-debian-600.jpg) 本应用专注于: @@ -27,7 +27,7 @@ _发音为 "**scr**een **c**o**py**"_ - **质量**: 分辨率可达 1920×1080 或更高 - **低延迟**: [35~70ms][lowlatency] - **快速启动**: 最快 1 秒内即可显示第一帧 - - **无侵入性**: 不会在设备上遗留任何程序 + - **无侵入性**: 不会在 Android 设备上遗留任何程序 - **用户利益**: 无需帐号,无广告,无需联网 - **自由**: 自由和开源软件 @@ -35,20 +35,20 @@ _发音为 "**scr**een **c**o**py**"_ 功能: - [屏幕录制](#屏幕录制) - - 镜像时[关闭设备屏幕](#关闭设备屏幕) + - 镜像时[关闭 Android 设备的屏幕](#关闭 Android 设备的屏幕) - 双向[复制粘贴](#复制粘贴) - [可配置显示质量](#采集设置) - - 以设备屏幕[作为摄像头(V4L2)](#v4l2loopback) (仅限 Linux) - - [模拟物理键盘 (HID)](#物理键盘模拟-hid) (仅限 Linux) - - [物理鼠标模拟 (HID)](#物理鼠标模拟-hid) (仅限 Linux) - - [OTG模式](#otg) (仅限 Linux) - - 更多 …… + - 以 Android 设备[作为摄像头 (V4L2)](#v4l2loopback)(仅限 Linux) + - [模拟物理键盘 (HID)](#物理键盘模拟-hid) + - [物理鼠标模拟 (HID)](#物理鼠标模拟-hid) + - [OTG 模式](#otg) + - 更多... ## 系统要求 安卓设备最低需要支持 API 21 (Android 5.0)。 -确保设备已[开启 adb 调试][enable-adb]。 +确保设备已[开启 ADB 调试][enable-adb]。 [enable-adb]: https://developer.android.com/studio/command-line/adb.html#Enabling @@ -149,7 +149,7 @@ brew install scrcpy brew install android-platform-tools ``` -或者通过 [MacPorts],该方法同时设置好 adb: +或者通过 [MacPorts],该方法同时设置好 `adb`: ```bash sudo port install scrcpy @@ -162,7 +162,7 @@ sudo port install scrcpy ## 运行 -连接安卓设备,然后执行: +将 Android 设备连接至计算机,然后执行: ```bash scrcpy @@ -185,7 +185,7 @@ scrcpy --help 要同时限制宽度和高度到某个值 (例如 1024): ```bash -scrcpy --max-size 1024 +scrcpy --max-size=1024 scrcpy -m 1024 # 简写 ``` @@ -197,7 +197,7 @@ scrcpy -m 1024 # 简写 默认码率是 8 Mbps。改变视频码率 (例如改为 2 Mbps): ```bash -scrcpy --bit-rate 2M +scrcpy --bit-rate=2M scrcpy -b 2M # 简写 ``` @@ -206,11 +206,19 @@ scrcpy -b 2M # 简写 要限制采集的帧率: ```bash -scrcpy --max-fps 15 +scrcpy --max-fps=15 ``` 本功能从 Android 10 开始才被官方支持,但在一些旧版本中也能生效。 +实际捕获的帧率可被打印到控制台: + +``` +scrcpy --print-fps +``` + +它也随时可以通过 MOD+i 来启用或关闭 + #### 画面裁剪 可以对设备屏幕进行裁剪,只镜像屏幕的一部分。 @@ -218,7 +226,7 @@ scrcpy --max-fps 15 例如可以只镜像 Oculus Go 的一只眼睛。 ```bash -scrcpy --crop 1224:1440:0:0 # 以 (0,0) 为原点的 1224x1440 像素 +scrcpy --crop=1224:1440:0:0 # 以 (0,0) 为原点的 1224x1440 像素 ``` 如果同时指定了 `--max-size`,会先进行裁剪,再进行缩放。 @@ -226,7 +234,6 @@ scrcpy --crop 1224:1440:0:0 # 以 (0,0) 为原点的 1224x1440 像素 #### 锁定屏幕方向 - 要锁定镜像画面的方向: ```bash @@ -247,13 +254,13 @@ scrcpy --lock-video-orientation=3 # 顺时针旋转 90° 一些设备内置了多种编码器,但是有的编码器会导致问题或崩溃。可以手动选择其它编码器: ```bash -scrcpy --encoder OMX.qcom.video.encoder.avc +scrcpy --encoder=OMX.qcom.video.encoder.avc ``` 要列出可用的编码器,可以指定一个不存在的编码器名称,错误信息中会包含所有的编码器: ```bash -scrcpy --encoder _ +scrcpy --encoder=_ ``` ### 采集 @@ -263,14 +270,14 @@ scrcpy --encoder _ 可以在镜像的同时录制视频: ```bash -scrcpy --record file.mp4 +scrcpy --record=file.mp4 scrcpy -r file.mkv ``` 仅录制,不显示镜像: ```bash -scrcpy --no-display --record file.mp4 +scrcpy --no-display --record=file.mp4 scrcpy -Nr file.mkv # 按 Ctrl+C 停止录制 ``` @@ -308,7 +315,7 @@ v4l2-ctl --list-devices ls /dev/video* ``` -使用一个 v4l2 漏开启 scrcpy: +使用一个 v4l2 漏开启 `scrcpy`: ```bash scrcpy --v4l2-sink=/dev/videoN @@ -359,14 +366,14 @@ _Scrcpy_ 使用 `adb` 与设备通信,并且 `adb` 支持通过 TCP/IP [连接 参数 `--tcpip` 允许自动配置连接。这里有两种方式。 -对于传入的 adb 连接,如果设备(在这个例子中以192.168.1.1为可用地址)已经监听了一个端口(通常是5555),运行: +对于传入的 _adb_ 连接,如果设备(在这个例子中以 192.168.1.1 为可用地址)已经监听了一个端口(通常为 5555),运行: ```bash scrcpy --tcpip=192.168.1.1 # 默认端口是5555 scrcpy --tcpip=192.168.1.1:5555 ``` -如果adb TCP/IP(无线) 模式在某些设备上不被启用(或者你不知道IP地址),用USB连接设备,然后运行: +如果 _adb_ TCP/IP(无线)模式在某些设备上不被启用(或者你不知道IP地址),用USB连接设备,然后运行: ```bash scrcpy --tcpip # 无需其他参数 @@ -378,22 +385,29 @@ scrcpy --tcpip # 无需其他参数 或者,可以通过 `adb` 使用手动启用 TCP/IP 连接: -1. 将设备和电脑连接至同一 Wi-Fi。 -2. 打开 设置 → 关于手机 → 状态信息,获取设备的 IP 地址,也可以执行以下的命令: +1. 将设备连接至电脑。 +2. 将设备和电脑连接至同一 Wi-Fi。 +3. 打开 设置 → 关于手机 → 状态信息,获取设备的 IP 地址,也可以执行以下的命令: ```bash adb shell ip route | awk '{print $9}' ``` -3. 启用设备的网络 adb 功能:`adb tcpip 5555`。 -4. 断开设备的 USB 连接。 -5. 连接到您的设备:`adb connect DEVICE_IP:5555` _(将 `DEVICE_IP` 替换为设备 IP)_。 -6. 正常运行 `scrcpy`。 +4. 启用设备的网络 adb 功能:`adb tcpip 5555`。 +5. 断开设备的 USB 连接。 +6. 连接到您的设备:`adb connect DEVICE_IP:5555` _(将 `DEVICE_IP` 替换为你获取到的设备 IP)_。 +7. 正常运行 `scrcpy`。 + +从 Android 11 开始,[无线调试选项][adb-wireless] 允许绕过必须将您的设备直接物理连接到您的计算机的限制。 + +如果连接突然断开,请运行 `scrcpy` 命令重新连接。如果提示找不到设备/模拟器,尝试再次运行 `adb connect DEVICE_IP:5555`,然后像往常一样运行 `scrcpy`。如果它仍然提示找不到设备,尝试运行 `adb disconnect` 然后再次运行前述的两个命令。 + +[adb-wireless]: https://developer.android.com/studio/command-line/adb#connect-to-a-device-over-wi-fi-android-11+ 降低比特率和分辨率可能很有用: ```bash -scrcpy --bit-rate 2M --max-size 800 +scrcpy --bit-rate=2M --max-size=800 scrcpy -b2M -m800 # 简写 ``` @@ -402,20 +416,33 @@ scrcpy -b2M -m800 # 简写 #### 多设备 -如果 `adb devices` 列出了多个设备,您必须指定设备的 _序列号_ : +如果 `adb devices` 列出了多个设备,您可以指定设备的 _序列号_ : ```bash -scrcpy --serial 0123456789abcdef +scrcpy --serial=0123456789abcdef scrcpy -s 0123456789abcdef # 简写 ``` +序列号也可通过环境变量 `ANDROID_SERIAL` 提供(它也将被 `adb` 所使用) + 如果设备通过 TCP/IP 连接: ```bash -scrcpy --serial 192.168.0.1:5555 +scrcpy --serial=192.168.0.1:5555 scrcpy -s 192.168.0.1:5555 # 简写 ``` +如果只有一个设备通过 USB 或 TCP/IP 连接,则可以自动选择它: + +```bash +# 选择唯一已通过 USB 连接的设备 +scrcpy -d # 与 adb -d 类似 +scrcpy --select-usb # 完整命令 +# 选择唯一已通过 TCP/IP 连接的设备 +scrcpy -e # 与 adb -e 类似 +scrcpy --select-tcpip # 完整命令 +``` + 您可以同时启动多个 _scrcpy_ 实例以同时显示多个设备的画面。 #### 在设备连接时自动启动 @@ -430,11 +457,11 @@ autoadb scrcpy -s '{}' #### 隧道 -要远程连接到设备,可以将本地的 adb 客户端连接到远程的 adb 服务端 (需要两端的 _adb_ 协议版本相同)。 +要远程连接到设备,可以将本地的 ADB 客户端连接到远程的 ADB 服务端 (需要两端的 _ADB_ 协议版本相同)。 -##### 远程ADB服务器 +##### 远程 ADB 服务器 -要连接到一个远程ADB服务器,让服务器在所有接口上监听: +要连接到一个远程 _ADB 服务器_ ,让服务器在所有接口上监听: ```bash adb kill-server @@ -442,16 +469,29 @@ adb -a nodaemon server start # 保持该窗口开启 ``` -**警告:所有客户端与ADB服务器的交流都是未加密的。** +**警告:所有客户端与 _ADB 服务器_ 的交流都是未加密的。** -假设此服务器可在 192.168.1.2 访问。 然后,从另一个终端,运行 scrcpy: +假设此服务器可在 192.168.1.2 访问。 然后,从另一个终端,运行 `scrcpy`: ```bash +# 在 bash 中 export ADB_SERVER_SOCKET=tcp:192.168.1.2:5037 scrcpy --tunnel-host=192.168.1.2 ``` -默认情况下,scrcpy使用用于 `adb forward` 隧道建立的本地端口(通常是 `27183`,见 `--port` )。它也可以强制使用一个不同的隧道端口(当涉及更多的重定向时,这在更复杂的情况下可能很有用): +```cmd +:: 在 CMD 中 +set ADB_SERVER_SOCKET=tcp:192.168.1.2:5037 +scrcpy --tunnel-host=192.168.1.2 +``` + +```powershell +# 在 PowerShell 中 +$env:ADB_SERVER_SOCKET = 'tcp:192.168.1.2:5037' +scrcpy --tunnel-host=192.168.1.2 +``` + +默认情况下,`scrcpy` 使用用于 `adb forward` 隧道建立的本地端口(通常是 `27183`,见 `--port` )。它也可以强制使用一个不同的隧道端口(当涉及更多的重定向时,这在更复杂的情况下可能很有用): ``` scrcpy --tunnel-port=1234 @@ -460,15 +500,15 @@ scrcpy --tunnel-port=1234 ##### SSH 隧道 -为了安全地与远程ADB服务器通信,最好使用SSH隧道。 +为了安全地与远程 _ADB 服务器_ 通信,最好使用 SSH 隧道。 -首先,确保ADB服务器正在远程计算机上运行: +首先,确保 _ADB 服务器_ 正在远程计算机上运行: ```bash adb start-server ``` -然后,建立一个SSH隧道: +然后,建立一个 SSH 隧道: ```bash # 本地 5038 --> 远程 5037 @@ -477,13 +517,26 @@ ssh -CN -L5038:localhost:5037 -R27183:localhost:27183 your_remote_computer # 保持该窗口开启 ``` -在另一个终端上,运行scrcpy: +在另一个终端上,运行 `scrcpy`: ```bash +# 在 bash 中 export ADB_SERVER_SOCKET=tcp:localhost:5038 scrcpy ``` +```cmd +:: 在 CMD 中 +set ADB_SERVER_SOCKET=tcp:localhost:5038 +scrcpy +``` + +```powershell +# 在 PowerShell 中 +$env:ADB_SERVER_SOCKET = 'tcp:localhost:5038' +scrcpy +``` + 若要不使用远程端口转发,可以强制使用正向连接(注意是 `-L` 而不是 `-R` ): ```bash @@ -493,18 +546,30 @@ ssh -CN -L5038:localhost:5037 -L27183:localhost:27183 your_remote_computer # 保持该窗口开启 ``` -在另一个终端上,运行scrcpy: +在另一个终端上,运行 `scrcpy`: ```bash +# 在 bash 中 export ADB_SERVER_SOCKET=tcp:localhost:5038 scrcpy --force-adb-forward ``` +```cmd +:: 在 CMD 中 +set ADB_SERVER_SOCKET=tcp:localhost:5038 +scrcpy --force-adb-forward +``` + +```powershell +# 在 PowerShell 中 +$env:ADB_SERVER_SOCKET = 'tcp:localhost:5038' +scrcpy --force-adb-forward +``` 类似地,对于无线连接,可能需要降低画面质量: ``` -scrcpy -b2M -m800 --max-fps 15 +scrcpy -b2M -m800 --max-fps=15 ``` ### 窗口设置 @@ -514,7 +579,7 @@ scrcpy -b2M -m800 --max-fps 15 窗口的标题默认为设备型号。可以通过如下命令修改: ```bash -scrcpy --window-title "我的设备" +scrcpy --window-title="我的设备" ``` #### 位置和大小 @@ -522,7 +587,7 @@ scrcpy --window-title "我的设备" 您可以指定初始的窗口位置和大小: ```bash -scrcpy --window-x 100 --window-y 100 --window-width 800 --window-height 600 +scrcpy --window-x=100 --window-y=100 --window-width=800 --window-height=600 ``` #### 无边框 @@ -535,7 +600,7 @@ scrcpy --window-borderless #### 保持窗口在最前 -您可以通过如下命令保持窗口在最前面: +您可以通过如下命令保持 `scrcpy` 的窗口在最前面: ```bash scrcpy --always-on-top @@ -557,7 +622,7 @@ scrcpy -f # 简写 可以通过以下命令旋转窗口: ```bash -scrcpy --rotation 1 +scrcpy --rotation=1 ``` 可选的值有: @@ -590,7 +655,7 @@ scrcpy -n 如果设备有多个显示屏,可以选择要镜像的显示屏: ```bash -scrcpy --display 1 +scrcpy --display=1 ``` 可以通过如下命令列出所有显示屏的 id: @@ -611,7 +676,7 @@ scrcpy --stay-awake scrcpy -w ``` -scrcpy 关闭时会恢复设备原来的设置。 +`scrcpy` 关闭时会恢复设备原来的设置。 #### 关闭设备屏幕 @@ -627,7 +692,7 @@ scrcpy -S 要重新打开屏幕,按下 MOD+Shift+o。 -在Android上,`电源` 按钮始终能把屏幕打开。为了方便,对于在 _scrcpy_ 中发出的 `电源` 事件 (通过鼠标右键或 MOD+p),会 (尽最大的努力) 在短暂的延迟后将屏幕关闭。设备上的 `电源` 按钮仍然能打开设备屏幕。 +在 Android 上,`电源` 按钮始终能把屏幕打开。为了方便,对于在 _scrcpy_ 中发出的 `电源` 事件 (通过鼠标右键或 MOD+p),会 (尽最大的努力) 在短暂的延迟后将屏幕关闭。设备上的 `电源` 按钮仍然能打开设备屏幕。 还可以同时阻止设备休眠: @@ -638,12 +703,22 @@ scrcpy -Sw #### 退出时息屏 -scrcpy 退出时关闭设备屏幕: +_scrcpy_ 退出时关闭设备屏幕: ```bash scrcpy --power-off-on-close ``` +#### 当启动时开机 + +默认情况下,在启动时,设备已开机。 + +若要防止此行为,请执行以下操作: + +```bash +scrcpy --no-power-on +``` + #### 显示触摸 在演示时,可能会需要显示 (在物理设备上的) 物理触摸点。 @@ -699,9 +774,9 @@ scrcpy --disable-screensaver 另外,MOD+Shift+v 会将电脑的剪贴板内容转换为一串按键事件输入到设备。在应用程序不接受粘贴时 (比如 _Termux_),这项功能可以派上一定的用场。不过这项功能可能会导致非 ASCII 编码的内容出现错误。 -**警告:** 将电脑剪贴板的内容粘贴至设备 (无论是通过 Ctrl+v 还是 MOD+v) 都会将内容复制到设备的剪贴板。如此,任何安卓应用程序都能读取到。您应避免将敏感内容 (如密码) 通过这种方式粘贴。 +**警告:** 将电脑剪贴板的内容粘贴至设备 (无论是通过 Ctrl+v 还是 MOD+v) 都会将内容复制到 Android 设备的剪贴板。如此,任何安卓应用程序都能读取到。您应避免将敏感内容 (如密码) 通过这种方式粘贴。 -一些设备不支持通过程序设置剪贴板。通过 `--legacy-paste` 选项可以修改 Ctrl+vMOD+v 的工作方式,使它们通过按键事件 (同 MOD+Shift+v) 来注入电脑剪贴板内容。 +一些 Android 设备不支持通过程序设置剪贴板。通过 `--legacy-paste` 选项可以修改 Ctrl+vMOD+v 的工作方式,使它们通过按键事件 (同 MOD+Shift+v) 来注入电脑剪贴板内容。 要禁用自动剪贴板同步功能,使用`--no-clipboard-autosync`。 @@ -711,17 +786,19 @@ scrcpy --disable-screensaver 在按住 Ctrl 时按下鼠标左键,直到松开鼠标左键前,移动鼠标会使屏幕内容相对于屏幕中心进行缩放或旋转 (如果应用支持)。 -具体来说,_scrcpy_ 会在鼠标位置,以及鼠标以屏幕中心镜像的位置分别生成触摸事件。 +从技术上来说,_scrcpy_ 会在鼠标位置,以及鼠标以屏幕中心镜像的位置分别生成触摸事件。 #### 物理键盘模拟 (HID) -默认情况下,scrcpy 使用安卓按键或文本注入,这在任何情况都可以使用,但仅限于ASCII字符。 +默认情况下,_scrcpy_ 使用安卓按键或文本注入,这在任何情况都可以使用,但仅限于 ASCII 字符。 -在 Linux 上,scrcpy 可以模拟为 Android 上的物理 USB 键盘,以提供更好地输入体验 (使用 [USB HID over AOAv2][hid-aoav2]):禁用虚拟键盘,并适用于任何字符和输入法。 +或者,scrcpy 可以模拟为 Android 上的物理 USB 键盘,以提供更好地输入体验 (使用 [USB HID over AOAv2][hid-aoav2]):禁用虚拟键盘,并适用于任何字符和输入法。 [hid-aoav2]: https://source.android.com/devices/accessories/aoa2#hid-support -不过,这种方法仅支持 USB 连接以及 Linux平台。 +不过,这种方法仅支持通过 USB 连接的设备。 + +注意:在 Windows 上,它可能只在 [OTG 模式](#otg) 下有效,而不能在镜像时(如果 USB 设备已被另一个进程打开,则无法打开它,就像 _adb 守护进程_ 一样) 启用 HID 模式: @@ -738,9 +815,9 @@ scrcpy -K # 简写 #### 物理鼠标模拟 (HID) -与物理键盘模拟类似,可以模拟一个物理鼠标。 同样,它仅在设备通过 USB 连接时才有效,并且目前仅在 Linux 上受支持。 +与物理键盘模拟类似,可以模拟一个物理鼠标。同样,它仅在设备通过 USB 连接时才有效。 -默认情况下,scrcpy 使用 Android 鼠标事件注入,使用绝对坐标。 通过模拟物理鼠标,在Android设备上出现鼠标指针,并注入鼠标相对运动、点击和滚动。 +默认情况下,_scrcpy_ 使用 Android 鼠标事件注入,使用绝对坐标。 通过模拟物理鼠标,在Android设备上出现鼠标指针,并注入鼠标相对运动、点击和滚动。 启用此模式: @@ -762,7 +839,7 @@ scrcpy -M # 简写 可以仅使用物理键盘和鼠标模拟 (HID) 运行 _scrcpy_,就好像计算机键盘和鼠标通过 OTG 线直接插入设备一样。 -在这个模式下,_adb_ (USB 调试)是不必要的,且镜像被禁用。 +在这个模式下,`adb` (USB 调试)是不必要的,且镜像被禁用。 启用 OTG 模式: @@ -782,7 +859,7 @@ scrcpy --otg --hid-keyboard --hid-mouse # 开启 HID 键盘 和 HID 鼠标 scrcpy --otg # 开启 HID 键盘 和 HID 鼠标 ``` -像 `--hid-keyboard` 和 `--hid-mouse` 一样,它只在设备通过 USB 连接时才有效,且目前仅在 Linux 上支持。 +像 `--hid-keyboard` 和 `--hid-mouse` 一样,它只在设备通过 USB 连接时才有效。 #### 文本注入偏好 @@ -932,7 +1009,7 @@ _⁵需要安卓版本 Android >= 7。_ ## 自定义路径 -要使用指定的 _adb_ 二进制文件,可以设置环境变量 `ADB`: +要使用指定的 `adb` 二进制文件,可以设置环境变量 `ADB`: ```bash ADB=/path/to/adb scrcpy @@ -971,6 +1048,16 @@ ADB=/path/to/adb scrcpy [DEVELOP]: https://github.com/Genymobile/scrcpy/blob/master/DEVELOP.md +## 联系 + +如果遇到错误,请先阅读 [FAQ],然后再打开 [issue]。 + +[issue]: https://github.com/Genymobile/scrcpy/issues + +对于一般问题或讨论,您还可以使用: + +- Reddit: [`r/scrcpy`](https://www.reddit.com/r/scrcpy) +- Twitter: [`@scrcpy_app`](https://twitter.com/scrcpy_app) ## 许可协议