11_ Only the original [ README] ( README.md ) is guaranteed to be up-to-date._
22
3- 只有原版的 [ README] ( README.md ) 会保持最新。
3+ _ 只有原版的 [ README] ( README.md ) 是保证最新的。 _
44
5- Current version is based on [ 65b023a ]
5+ Current version is based on [ 8615813 ]
66
7- 本文根据[ 65b023a ] 进行翻译。
7+ 本文根据[ 8615813 ] 进行翻译。
88
9- [ 65b023a ] : https://github.com/Genymobile/scrcpy/blob/65b023ac6d586593193fd5290f65e25603b68e02 /README.md
9+ [ 8615813 ] : https://github.com/Genymobile/scrcpy/blob/86158130051d450a449a2e7bb20b0fcef1b62e80 /README.md
1010
11- # scrcpy (v1.20 )
11+ # scrcpy (v1.21 )
1212
1313<img src =" data/icon.svg " width =" 128 " height =" 128 " alt =" scrcpy " align =" right " />
1414
@@ -68,12 +68,18 @@ Current version is based on [65b023a]
6868
6969### Linux
7070
71- 在 Debian (目前仅支持 _ testing _ 和 _ sid _ 分支) 和Ubuntu (20.04) 上:
71+ 在 Debian 和 Ubuntu 上:
7272
7373```
7474apt install scrcpy
7575```
7676
77+ 在 Arch Linux 上:
78+
79+ ```
80+ pacman -S scrcpy
81+ ```
82+
7783我们也提供 [ Snap] 包: [ ` scrcpy ` ] [ snap-link ] 。
7884
7985[ snap-link ] : https://snapstats.org/snaps/scrcpy
@@ -85,11 +91,6 @@ apt install scrcpy
8591[ COPR ] : https://fedoraproject.org/wiki/Category:Copr
8692[ copr-link ] : https://copr.fedorainfracloud.org/coprs/zeno/scrcpy/
8793
88- 对 Arch Linux 我们提供 [ AUR] 包: [ ` scrcpy ` ] [ aur-link ] 。
89-
90- [ AUR ] : https://wiki.archlinux.org/index.php/Arch_User_Repository
91- [ aur-link ] : https://aur.archlinux.org/packages/scrcpy/
92-
9394对 Gentoo 我们提供 [ Ebuild] 包:[ ` scrcpy/ ` ] [ ebuild-link ] 。
9495
9596[ Ebuild ] : https://wiki.gentoo.org/wiki/Ebuild
@@ -343,9 +344,32 @@ scrcpy --v4l2-buffer=500 # 为 v4l2 漏增加 500 毫秒的缓冲
343344
344345### 连接
345346
346- #### 无线
347+ #### TCP/IP (无线)
348+
349+ _ Scrcpy_ 使用 ` adb ` 与设备通信,并且 ` adb ` 支持通过 TCP/IP [ 连接] 到设备(设备必须连接与电脑相同的网络)。
350+
351+ ##### 自动配置
352+
353+ 参数 ` --tcpip ` 允许自动配置连接。这里有两种方式。
354+
355+ 对于传入的 adb 连接,如果设备(在这个例子中以192.168.1.1为可用地址)已经监听了一个端口(通常是5555),运行:
356+
357+ ``` bash
358+ scrcpy --tcpip=192.168.1.1 # 默认端口是5555
359+ scrcpy --tcpip=192.168.1.1:5555
360+ ```
361+
362+ 如果adb TCP/IP(无线) 模式在某些设备上不被启用(或者你不知道IP地址),用USB连接设备,然后运行:
363+
364+ ``` bash
365+ scrcpy --tcpip # 无需参数
366+ ```
367+
368+ 这将会自动寻找设备IP地址,启用TCP/IP模式,然后在启动之前连接到设备。
347369
348- _ Scrcpy_ 使用 ` adb ` 与设备通信,并且 ` adb ` 支持通过 TCP/IP [ 连接] 到设备:
370+ ##### 手动配置
371+
372+ 或者,可以通过 ` adb ` 使用手动启用 TCP/IP 连接:
349373
3503741 . 将设备和电脑连接至同一 Wi-Fi。
3513752 . 打开 设置 → 关于手机 → 状态信息,获取设备的 IP 地址,也可以执行以下的命令:
@@ -354,12 +378,12 @@ _Scrcpy_ 使用 `adb` 与设备通信,并且 `adb` 支持通过 TCP/IP [连接
354378 adb shell ip route | awk ' {print $9}'
355379 ```
356380
357- 3. 启用设备的网络 adb 功能: ` adb tcpip 5555` 。
381+ 3. 启用设备的网络 adb 功能:` adb tcpip 5555` 。
3583824. 断开设备的 USB 连接。
3593835. 连接到您的设备:` adb connect DEVICE_IP:5555` _(将 ` DEVICE_IP` 替换为设备 IP)_。
3603846. 正常运行 ` scrcpy` 。
361385
362- 可能降低码率和分辨率会更好一些 :
386+ 降低比特率和分辨率可能很有用 :
363387
364388` ` ` bash
365389scrcpy --bit-rate 2M --max-size 800
@@ -397,33 +421,75 @@ autoadb scrcpy -s '{}'
397421
398422[AutoAdb]: https://github.com/rom1v/autoadb
399423
400- # ### SSH 隧道
424+ # ### 隧道
425+
426+ 要远程连接到设备,可以将本地的 adb 客户端连接到远程的 adb 服务端 (需要两端的 _adb_ 协议版本相同)。
427+
428+ # #### 远程ADB服务器
401429
402- 要远程连接到设备,可以将本地的 adb 客户端连接到远程的 adb 服务端 (需要两端的 _adb_ 协议版本相同) :
430+ 要连接到一个远程ADB服务器,让服务器在所有接口上监听 :
403431
404432` ` ` bash
405- adb kill-server # 关闭本地 5037 端口上的 adb 服务端
406- ssh -CN -L5037:localhost:5037 -R27183:localhost:27183 your_remote_computer
433+ adb kill-server
434+ adb -a nodaemon server start
407435# 保持该窗口开启
408436` ` `
409437
410- 在另一个终端:
438+ ** 警告:所有客户端与ADB服务器的交流都是未加密的。**
439+
440+ 假设此服务器可在 192.168.1.2 访问。 然后,从另一个终端,运行 scrcpy:
411441
412442` ` ` bash
443+ export ADB_SERVER_SOCKET=tcp:192.168.1.2:5037
444+ scrcpy --tunnel-host=192.168.1.2
445+ ` ` `
446+
447+ 默认情况下,scrcpy使用用于 ` adb forward` 隧道建立的本地端口(通常是 ` 27183` ,见 ` --port` )。它也可以强制使用一个不同的隧道端口(当涉及更多的重定向时,这在更复杂的情况下可能很有用):
448+
449+ ```
450+ scrcpy --tunnel-port=1234
451+ ```
452+
453+
454+ ##### SSH 隧道
455+
456+ 为了安全地与远程ADB服务器通信,最好使用SSH隧道。
457+
458+ 首先,确保ADB服务器正在远程计算机上运行:
459+
460+ ```bash
461+ adb start-server
462+ ```
463+
464+ 然后,建立一个SSH隧道:
465+
466+ ``` bash
467+ # 本地 5038 --> 远程 5037
468+ # 本地 27183 <-- 远程 27183
469+ ssh -CN -L5038:localhost:5037 -R27183:localhost:27183 your_remote_computer
470+ # 保持该窗口开启
471+ ```
472+
473+ 在另一个终端上,运行scrcpy:
474+
475+ ``` bash
476+ export ADB_SERVER_SOCKET=tcp:localhost:5038
413477scrcpy
414478```
415479
416- 若要不使用远程端口转发,可以强制使用正向连接 (注意 ` -L` 和 ` -R` 的区别) :
480+ 若要不使用远程端口转发,可以强制使用正向连接(注意是 ` -L ` 而不是 ` -R ` ) :
417481
418482``` bash
419- adb kill-server # 关闭本地 5037 端口上的 adb 服务端
420- ssh -CN -L5037:localhost:5037 -L27183:localhost:27183 your_remote_computer
483+ # 本地 5038 --> 远程 5037
484+ # 本地 27183 <-- 远程 27183
485+ ssh -CN -L5038:localhost:5037 -L27183:localhost:27183 your_remote_computer
421486# 保持该窗口开启
422487```
423488
424- 在另一个终端:
489+ 在另一个终端上,运行scrcpy:
425490
426491``` bash
492+ export ADB_SERVER_SOCKET=tcp:localhost:5038
427493scrcpy --force-adb-forward
428494```
429495
@@ -441,7 +507,7 @@ scrcpy -b2M -m800 --max-fps 15
441507窗口的标题默认为设备型号。可以通过如下命令修改:
442508
443509``` bash
444- scrcpy --window-title 'My device'
510+ scrcpy --window-title " 我的设备 "
445511```
446512
447513#### 位置和大小
@@ -630,6 +696,8 @@ scrcpy --disable-screensaver
630696
631697一些设备不支持通过程序设置剪贴板。通过 ` --legacy-paste ` 选项可以修改 <kbd >Ctrl</kbd >+<kbd >v</kbd > 和 <kbd >MOD</kbd >+<kbd >v</kbd > 的工作方式,使它们通过按键事件 (同 <kbd >MOD</kbd >+<kbd >Shift</kbd >+<kbd >v</kbd >) 来注入电脑剪贴板内容。
632698
699+ 要禁用自动剪贴板同步功能,使用` --no-clipboard-autosync ` 。
700+
633701#### 双指缩放
634702
635703模拟“双指缩放”:<kbd >Ctrl</kbd >+_ 按住并移动鼠标_ 。
@@ -659,11 +727,11 @@ scrcpy -K # 简写
659727
660728在这种模式下,原始按键事件 (扫描码) 被发送给设备,而与宿主机按键映射无关。因此,若键盘布局不匹配,需要在 Android 设备上进行配置,具体为 设置 → 系统 → 语言和输入法 → [ 实体键盘] 。
661729
662- [ Physical keyboard ] : https://github.com/Genymobile/scrcpy/pull/2632#issuecomment-923756915
730+ [ 实体键盘 ] : https://github.com/Genymobile/scrcpy/pull/2632#issuecomment-923756915
663731
664732#### 文本注入偏好
665733
666- 打字的时候 ,系统会产生两种[ 事件] [ textevents ] :
734+ 输入文字的时候 ,系统会产生两种[ 事件] [ textevents ] :
667735 - _ 按键事件_ ,代表一个按键被按下或松开。
668736 - _ 文本事件_ ,代表一个字符被输入。
669737
@@ -675,7 +743,13 @@ scrcpy -K # 简写
675743scrcpy --prefer-text
676744```
677745
678- (这会导致键盘在游戏中工作不正常)
746+ (但这会导致键盘在游戏中工作不正常)
747+
748+ 相反,您可以强制始终注入原始按键事件:
749+
750+ ``` bash
751+ scrcpy --raw-key-events
752+ ```
679753
680754该选项不影响 HID 键盘 (该模式下,所有按键都发送为扫描码)。
681755
@@ -765,7 +839,7 @@ _<kbd>[Super]</kbd> 键通常是指 <kbd>Windows</kbd> 或 <kbd>Cmd</kbd> 键。
765839 | 点按 ` 主屏幕 ` | <kbd >MOD</kbd >+<kbd >h</kbd > \| _ 中键_
766840 | 点按 ` 返回 ` | <kbd >MOD</kbd >+<kbd >b</kbd > \| _ 右键²_
767841 | 点按 ` 切换应用 ` | <kbd >MOD</kbd >+<kbd >s</kbd > \| _ 第4键³_
768- | 点按 ` 菜单 ` (解锁屏幕) | <kbd >MOD</kbd >+<kbd >m</kbd >
842+ | 点按 ` 菜单 ` (解锁屏幕)⁴ | <kbd >MOD</kbd >+<kbd >m</kbd >
769843 | 点按 ` 音量+ ` | <kbd >MOD</kbd >+<kbd >↑</kbd > _ (上箭头)_
770844 | 点按 ` 音量- ` | <kbd >MOD</kbd >+<kbd >↓</kbd > _ (下箭头)_
771845 | 点按 ` 电源 ` | <kbd >MOD</kbd >+<kbd >p</kbd >
@@ -776,9 +850,9 @@ _<kbd>[Super]</kbd> 键通常是指 <kbd>Windows</kbd> 或 <kbd>Cmd</kbd> 键。
776850 | 展开通知面板 | <kbd >MOD</kbd >+<kbd >n</kbd > \| _ 第5键³_
777851 | 展开设置面板 | <kbd >MOD</kbd >+<kbd >n</kbd >+<kbd >n</kbd > \| _ 双击第5键³_
778852 | 收起通知面板 | <kbd >MOD</kbd >+<kbd >Shift</kbd >+<kbd >n</kbd >
779- | 复制到剪贴板⁴ | <kbd >MOD</kbd >+<kbd >c</kbd >
780- | 剪切到剪贴板⁴ | <kbd >MOD</kbd >+<kbd >x</kbd >
781- | 同步剪贴板并粘贴⁴ | <kbd >MOD</kbd >+<kbd >v</kbd >
853+ | 复制到剪贴板⁵ | <kbd >MOD</kbd >+<kbd >c</kbd >
854+ | 剪切到剪贴板⁵ | <kbd >MOD</kbd >+<kbd >x</kbd >
855+ | 同步剪贴板并粘贴⁵ | <kbd >MOD</kbd >+<kbd >v</kbd >
782856 | 注入电脑剪贴板文本 | <kbd >MOD</kbd >+<kbd >Shift</kbd >+<kbd >v</kbd >
783857 | 打开/关闭FPS显示 (至标准输出) | <kbd >MOD</kbd >+<kbd >i</kbd >
784858 | 捏拉缩放 | <kbd >Ctrl</kbd >+_ 按住并移动鼠标_
@@ -788,7 +862,8 @@ _<kbd>[Super]</kbd> 键通常是指 <kbd>Windows</kbd> 或 <kbd>Cmd</kbd> 键。
788862_ ¹双击黑边可以去除黑边。_
789863_ ²点击鼠标右键将在屏幕熄灭时点亮屏幕,其余情况则视为按下返回键 。_
790864_ ³鼠标的第4键和第5键。_
791- _ ⁴需要安卓版本 Android >= 7。_
865+ _ ⁴对于开发中的 react-native 应用程序,` MENU ` 触发开发菜单。_
866+ _ ⁵需要安卓版本 Android >= 7。_
792867
793868有重复按键的快捷键通过松开再按下一个按键来进行,如“展开设置面板”:
794869
@@ -816,7 +891,7 @@ ADB=/path/to/adb scrcpy
816891
817892一个同事让我找出一个和 [ gnirehtet] 一样难以发音的名字。
818893
819- [ ` strcpy ` ] 复制一个 ** str** ing (字符串); ` scrcpy ` 复制一个 ** scr** een (屏幕)。
894+ [ ` strcpy ` ] 源于 ** str** ing (字符串); ` scrcpy ` 源于 ** scr** een (屏幕)。
820895
821896[ gnirehtet ] : https://github.com/Genymobile/gnirehtet
822897[ `strcpy` ] : http://man7.org/linux/man-pages/man3/strcpy.3.html
0 commit comments