scrcpy - 此应用程序提供通过 USB 或TCP/IP连接的 Android 设备的显示和控制。它不需要任何根访问权限。它适用于GNU/Linux、Windows和macOS。

Created at: 2017-11-22 02:00:27
Language: C
License: Apache-2.0

scrcpy (v1.25)

斯库比

发音为“screen copy

用另一种语言阅读

此应用程序提供通过USB或通过TCP / IP连接的Android设备的显示和控制。它不需要任何访问权限。它适用于GNU/LinuxWindowsmacOS。

截图

它侧重于:

  • 亮度:本机,仅显示设备屏幕
  • 性能:30~120fps,取决于设备
  • 质量:1920×1080或以上
  • 低延迟35~70ms
  • 启动时间短:~1 秒显示第一个图像
  • 非侵入性:安卓设备上没有安装任何东西
  • 用户利益:无需帐户,无需广告,无需互联网
  • 自由:自由和开源软件

其功能包括:

要求

Android 设备至少需要 API 21 (Android 5.0)。

确保在设备上启用 adb 调试

在某些设备上,你还需要启用其他选项以使用键盘和鼠标对其进行控制。

获取应用

包装状态

总结

  • Linux:
    apt install scrcpy
  • 视窗:下载
  • macOS:
    brew install scrcpy

从源代码构建:构建简化过程))

Linux目录

在 Debian 和 Ubuntu 上:

apt install scrcpy

在 Arch Linux 上:

pacman -S scrcpy

Snap 包可用:scrcpy

对于Fedora,可以使用COPR软件包:scrcpy

对于Gentoo,可以使用Ebuildscrcpy/

你也可以手动构建应用程序简化过程)。

窗户

对于 Windows,可以使用包含所有依赖项(包括)的预构建存档:

adb

它也有巧克力味:

choco install scrcpy
choco install adb    # if you don't have it yet

独家新闻中:

scoop install scrcpy
scoop install adb    # if you don't have it yet

你也可以手动构建应用程序

苹果操作系统

该应用程序在自制软件中可用。只需安装它:

brew install scrcpy

你需要 ,可从你的 .如果你还没有:

adb
PATH

brew install android-platform-tools

它在MacPorts中也可用,它为你设置:

adb

sudo port install scrcpy

你也可以手动构建应用程序

将安卓设备插入计算机,然后执行:

scrcpy

它接受命令行参数,按以下方式列出:

scrcpy --help

特征

捕获配置

减小尺寸

有时,以较低的分辨率镜像Android设备以提高性能很有用。

要将宽度和高度限制为某个值(例如 1024):

scrcpy --max-size=1024
scrcpy -m 1024  # short version

计算另一个维度,以便保留 Android 设备的纵横比。这样,1920×1080 中的设备将在 1024×576 处镜像。

更改比特率

默认比特率为 8 Mbps。要更改视频比特率(例如更改为 2 Mbps):

scrcpy --bit-rate=2M
scrcpy -b 2M  # short version

限制帧速率

捕获帧速率可以限制:

scrcpy --max-fps=15

自 Android 10 起,此功能得到正式支持,但可能适用于早期版本。

实际捕获帧速率可能会打印到控制台:

scrcpy --print-fps

它也可以随时使用 + 启用或禁用。MODi

作物

设备屏幕可以裁剪为仅镜像屏幕的一部分。

例如,这很有用,可以只镜像Oculus Go的一只眼睛:

scrcpy --crop=1224:1440:0:0   # 1224x1440 at offset (0,0)

如果还指定,则在裁剪后应用调整大小。

--max-size

锁定视频方向

要锁定镜像的方向:

scrcpy --lock-video-orientation     # initial (current) orientation
scrcpy --lock-video-orientation=0   # natural orientation
scrcpy --lock-video-orientation=1   # 90° counterclockwise
scrcpy --lock-video-orientation=2   # 180°
scrcpy --lock-video-orientation=3   # 90° clockwise

这会影响录制方向。

窗口也可以独立旋转

编码器

某些设备具有多个编码器,其中一些可能会导致问题或崩溃。可以选择不同的编码器:

scrcpy --encoder=OMX.qcom.video.encoder.avc

若要列出可用的编码器,可以传递无效的编码器名称;该错误将给出可用的编码器:

scrcpy --encoder=_

捕获

录音

可以在镜像时录制屏幕:

scrcpy --record=file.mp4
scrcpy -r file.mkv

要在录制时禁用镜像:

scrcpy --no-display --record=file.mp4
scrcpy -Nr file.mkv
# interrupt recording with Ctrl+C

“跳过的帧”被记录下来,即使它们不是实时显示的(出于性能原因)。帧在设备上带有时间戳,因此数据包延迟变化不会影响录制的文件。

v4l2环回

在 Linux 上,可以将视频流发送到 v4l2 环回设备,以便任何支持 v4l2 的工具都可以像网络摄像头一样打开 Android 设备。

必须安装该模块:

v4l2loopback

sudo apt install v4l2loopback-dkms

要创建 v4l2 设备,请执行以下操作:

sudo modprobe v4l2loopback

这将在 中创建一个新的视频设备,其中 是整数(有更多选项可用于创建多个设备或具有特定 ID 的设备)。

/dev/videoN
N

要列出已启用的设备:

# requires v4l-utils package
v4l2-ctl --list-devices

# simple but might be sufficient
ls /dev/video*

若要开始使用 v4l2 接收器,请执行以下操作:

scrcpy

scrcpy --v4l2-sink=/dev/videoN
scrcpy --v4l2-sink=/dev/videoN --no-display  # disable mirroring window
scrcpy --v4l2-sink=/dev/videoN -N            # short version

(替换为设备 ID,检查

N
ls /dev/video*
)

启用后,你可以使用支持 v4l2 的工具打开视频流:

ffplay -i /dev/videoN
vlc v4l2:///dev/videoN   # VLC might add some buffering delay

例如,你可以在 OBS 中捕获视频。

缓冲

可以添加缓冲。这会增加延迟,但会减少抖动(请参阅#2464)。

该选项可用于显示缓冲:

scrcpy --display-buffer=50  # add 50 ms buffering for display

和 V4L2 接收器:

scrcpy --v4l2-buffer=500    # add 500 ms buffering for v4l2 sink

连接

TCP/IP (无线)

Scrcpy用于与设备通信,并且可以通过TCP / IP连接到设备。设备必须与计算机连接在同一网络上。

adb
adb

自动

一个选项允许自动配置连接。有两种变体。

--tcpip

如果设备(在本例中可通过 192.168.1.1 访问)已在端口(通常为 5555)上侦听传入的 adb 连接,则运行:

scrcpy --tcpip=192.168.1.1       # default port is 5555
scrcpy --tcpip=192.168.1.1:5555

如果在设备上禁用了 adb TCP/IP 模式(或者如果你不知道 IP 地址),请通过 USB 连接设备,然后运行:

scrcpy --tcpip    # without arguments

它将自动找到设备 IP 地址和 adb 端口,必要时启用 TCP/IP 模式,然后在启动前连接到设备。

手动

或者,可以使用以下命令手动启用 TCP/IP 连接:

adb

  1. 将设备插入计算机上的 USB 端口。

  2. 将设备连接到与计算机相同的 Wi-Fi 网络。

  3. 在“设置”→“关于电话→状态”中获取设备 IP 地址,或通过执行以下命令:

    adb shell ip route | awk '{print $9}'
  4. 在你的设备上通过 TCP/IP 启用:。

    adb
    adb tcpip 5555

  5. 拔下设备插头。

  6. 连接到你的设备:将DEVICE_IP替换为你找到的设备 IP 地址)。

    adb connect DEVICE_IP:5555

  7. 照常运行。

    scrcpy

从Android 11开始,无线调试选项允许绕过将设备直接物理连接到计算机的麻烦。

如果连接随机断开,请运行命令以重新连接。如果显示未找到设备/模拟器,请尝试再次运行,然后照常运行。如果仍然显示未找到任何命令,请尝试运行 ,然后再次运行这两个命令。

scrcpy
adb connect DEVICE_IP:5555
scrcpy
adb disconnect

降低比特率和分辨率可能很有用:

scrcpy --bit-rate=2M --max-size=800
scrcpy -b2M -m800  # short version

多设备

如果 中列出了多个设备,则可以指定序列号

adb devices

scrcpy --serial=0123456789abcdef
scrcpy -s 0123456789abcdef  # short version

串行也可以通过环境变量(也由 使用)提供。

ANDROID_SERIAL
adb

如果设备通过 TCP/IP 连接:

scrcpy --serial=192.168.0.1:5555
scrcpy -s 192.168.0.1:5555  # short version

如果只有一个设备通过USB或TCP / IP连接,则可以自动选择它:

# Select the only device connected via USB
scrcpy -d             # like adb -d
scrcpy --select-usb   # long version

# Select the only device connected via TCP/IP
scrcpy -e             # like adb -e
scrcpy --select-tcpip # long version

你可以为多个设备启动多个 scrcpy 实例。

设备连接时自动启动

你可以使用自动广告

autoadb scrcpy -s '{}'

隧道

要连接到远程设备,可以将本地客户端连接到远程服务器(前提是它们使用相同版本的 adb 协议)。

adb
adb

远程亚行服务器

要连接到远程 adb 服务器,请使服务器侦听所有接口:

adb kill-server
adb -a nodaemon server start
# keep this open

警告:客户端和 adb 服务器之间的所有通信均未加密。

假设可以通过 192.168.1.2 访问此服务器。然后,从另一个终端运行:

scrcpy

# in bash
export ADB_SERVER_SOCKET=tcp:192.168.1.2:5037
scrcpy --tunnel-host=192.168.1.2
:: in cmd
set ADB_SERVER_SOCKET=tcp:192.168.1.2:5037
scrcpy --tunnel-host=192.168.1.2
# in 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
SSH隧道

要安全地与远程 adb 服务器通信,最好使用 SSH 隧道。

首先,确保 adb 服务器在远程计算机上运行:

adb start-server

然后,建立一个 SSH 隧道:

# local  5038 --> remote  5037
# local 27183 <-- remote 27183
ssh -CN -L5038:localhost:5037 -R27183:localhost:27183 your_remote_computer
# keep this open

从另一个终端,运行:

scrcpy

# in bash
export ADB_SERVER_SOCKET=tcp:localhost:5038
scrcpy
:: in cmd
set ADB_SERVER_SOCKET=tcp:localhost:5038
scrcpy
# in PowerShell
$env:ADB_SERVER_SOCKET = 'tcp:localhost:5038'
scrcpy

为避免启用远程端口转发,你可以改为强制转发连接(请注意,而不是 ):

-L
-R

# local  5038 --> remote  5037
# local 27183 --> remote 27183
ssh -CN -L5038:localhost:5037 -L27183:localhost:27183 your_remote_computer
# keep this open

从另一个终端,运行:

scrcpy

# in bash
export ADB_SERVER_SOCKET=tcp:localhost:5038
scrcpy --force-adb-forward
:: in cmd
set ADB_SERVER_SOCKET=tcp:localhost:5038
scrcpy --force-adb-forward
# in PowerShell
$env:ADB_SERVER_SOCKET = 'tcp:localhost:5038'
scrcpy --force-adb-forward

与无线连接一样,降低质量可能很有用:

scrcpy -b2M -m800 --max-fps=15

窗口配置

标题

默认情况下,窗口标题为设备型号。它可以更改:

scrcpy --window-title='My device'

位置和尺寸

可以指定初始窗口位置和大小:

scrcpy --window-x=100 --window-y=100 --window-width=800 --window-height=600

无国界

要禁用窗口装饰:

scrcpy --window-borderless

始终处于领先地位

要使 scrcpy 窗口始终位于顶部,请执行以下操作:

scrcpy --always-on-top

全屏

该应用程序可以直接全屏启动:

scrcpy --fullscreen
scrcpy -f  # short version

然后可以使用 + 动态切换全屏。MODf

旋转

窗口可以旋转:

scrcpy --rotation=1

可能的值:

  • 0
    :无旋转
  • 1
    :逆时针90度
  • 2
    : 180 度
  • 3
    :顺时针90度

旋转也可以使用 +(左)和 +(右)动态更改MODMOD

请注意,scrcpy 管理 3 种不同的旋转:

  • MOD+r请求设备在纵向和横向之间切换(如果当前正在运行的应用不支持请求的方向,则可能会拒绝)。
  • --锁定视频方向更改镜像方向(从设备发送到计算机的视频的方向)。这会影响录制。
  • --rotation
    (或 +/+) 仅旋转窗口内容。这仅影响显示,而不影响录制。MODMOD

其他镜像选项

只读

要禁用控件(可以与设备交互的所有内容:输入键,鼠标事件,拖放文件):

scrcpy --no-control
scrcpy -n

显示

如果有多个显示器可用,则可以选择要镜像的显示器:

scrcpy --display=1

可以通过以下方式检索显示 ID 列表:

adb shell dumpsys display   # search "mDisplayId=" in the output

仅当设备至少运行 Android 10 时,才能控制辅助显示屏(否则会镜像为只读)。

保持清醒

要防止设备在插入设备时延迟后休眠,请执行以下操作:

scrcpy --stay-awake
scrcpy -w

关闭 scrcpy 时恢复初始状态。

关闭屏幕

可以使用命令行选项在启动时镜像时关闭设备屏幕:

scrcpy --turn-screen-off
scrcpy -S

或者随时按 +。MODo

要重新打开它,请按 ++。MODShifto

在安卓设备上,该按钮始终打开屏幕。为方便起见,如果通过scrcpy(通过右键单击或+)发送,它将在小延迟后强制关闭屏幕(尽最大努力)。物理按钮仍会导致屏幕打开。

POWER
POWER
MODp
POWER

防止设备进入睡眠状态也很有用:

scrcpy --turn-screen-off --stay-awake
scrcpy -Sw

关闭时关闭电源

要在关闭 scrcpy 时关闭设备屏幕:

scrcpy --power-off-on-close

开机启动

默认情况下,在启动时,设备已打开电源。

若要防止此行为,请执行以下操作:

scrcpy --no-power-on

显示触摸

对于演示文稿,显示物理触摸(在物理设备上)可能很有用。

Android 在开发者选项中提供了此功能。

Scrcpy 提供了一个选项,用于在启动时启用此功能并在退出时恢复初始值:

scrcpy --show-touches
scrcpy -t

请注意,它仅显示物理触摸(通过设备上的手指)。

禁用屏幕保护程序

默认情况下,scrcpy 不会阻止屏幕保护程序在计算机上运行。

要禁用它:

scrcpy --disable-screensaver

输入控制

旋转设备屏幕

按 + 可在纵向和横向模式之间切换。MODr

请注意,仅当前台中的应用程序支持请求的方向时,它才会旋转。

复制粘贴

每当Android剪贴板更改时,它都会自动同步到计算机剪贴板。

任何快捷方式都会转发到设备。特别:Ctrl

  • Ctrl+c通常复制
  • Ctrl+x通常切割
  • Ctrl+v通常粘贴(在计算机到设备剪贴板同步后)

这通常按预期工作。

但是,实际行为取决于活动应用程序。例如,Termux 在 + 上发送 SIGINT,而 K-9 Mail 撰写新邮件。Ctrlc

在这种情况下要复制、剪切和粘贴(但仅在 Android >= 7 上支持):

  • MOD+c注入
    COPY
  • MOD+x注入
    CUT
  • MOD+v注入(计算机到设备剪贴板同步后)
    PASTE

此外,++ 将计算机剪贴板文本作为一系列关键事件注入。当组件不接受文本粘贴(例如在 Termux 中)时,这很有用,但它可能会破坏非 ASCII 内容。MODShiftv

警告:将计算机剪贴板粘贴到设备(通过 + 或 +)会将内容复制到 Android 剪贴板中。因此,任何Android应用程序都可以读取其内容。你应该避免以这种方式粘贴敏感内容(如密码)。CtrlvMODv

以编程方式设置设备剪贴板时,某些 Android 设备的行为不符合预期。提供了一个选项来更改 + 和 + 的行为,以便它们也将计算机剪贴板文本作为键事件序列注入(与 ++ 相同)。

--legacy-paste
CtrlvMODvMODShiftv

要禁用自动剪贴板同步,请使用 。

--no-clipboard-autosync

捏合缩放

要模拟“捏合缩放”:+单击并移动Ctrl

更准确地说,按住并按下左键单击按钮。在释放左键单击按钮之前,所有鼠标移动都会相对于屏幕中心缩放和旋转内容(如果应用程序支持)。Ctrl

从技术上讲,scrcpy 从屏幕中心倒置位置的“虚拟手指”生成额外的触摸事件。

物理键盘模拟 (HID)

默认情况下,scrcpy使用Android密钥或文本注入:它可以在任何地方使用,但仅限于ASCII。

或者,可以在 Android 上模拟物理 USB 键盘以提供更好的输入体验(通过 AOAv2 使用 USB HID):虚拟键盘已禁用,适用于所有字符和 IME。

scrcpy

但是,仅当设备通过USB连接时,它才有效。

注意:在 Windows 上,它可能只能在 OTG 模式下工作,而在镜像时不能工作(如果 USB 设备已经被另一个进程(如 adb 守护程序)打开,则无法打开 USB 设备)。

要启用此模式:

scrcpy --hid-keyboard
scrcpy -K  # short version

如果由于某种原因(例如,由于设备未通过 USB 连接)而失败,它会自动回退到默认模式(在控制台中登录)。这允许在通过 USB 和 TCP/IP 连接时使用相同的命令行选项。

在此模式下,原始密钥事件(扫描码)将发送到设备,与主机密钥映射无关。因此,如果你的键盘布局不匹配,则必须在 Android 设备上的“系统→语言设置”→“中对其进行配置,然后输入→物理键盘

此设置页面可以直接启动:

adb shell am start -a android.settings.HARD_KEYBOARD_SETTINGS

但是,该选项仅在启用 HID 键盘(或连接物理键盘)时可用。

物理鼠标模拟 (HID)

与物理键盘模拟类似,可以模拟物理鼠标。同样,仅当设备通过USB连接时,它才有效。

默认情况下,scrcpy 使用具有绝对坐标的 Android 鼠标事件注入。通过模拟物理鼠标,Android 设备上会出现鼠标指针,并注入相对鼠标运动、点击和滚动。

要启用此模式:

scrcpy --hid-mouse
scrcpy -M  # short version

你还可以添加以转发所有鼠标按钮

--forward-all-clicks

启用此模式后,计算机鼠标将被“捕获”(鼠标指针从计算机中消失,而是出现在 Android 设备上)。

特殊捕获键(或 )切换(禁用或启用)鼠标捕获。使用其中一个将鼠标的控制权交还给计算机。AltSuper

奥特格

可以仅使用物理键盘和鼠标模拟 (HID) 运行 scrcpy,就像计算机键盘和鼠标通过 OTG 电缆直接插入设备一样。

在此模式下,不需要(USB调试),并且禁用了镜像。

adb

要启用 OTG 模式:

scrcpy --otg
# Pass the serial if several USB devices are available
scrcpy --otg -s 0123456789abcdef

只能启用 HID 键盘或 HID 鼠标:

scrcpy --otg --hid-keyboard              # keyboard only
scrcpy --otg --hid-mouse                 # mouse only
scrcpy --otg --hid-keyboard --hid-mouse  # keyboard and mouse
# for convenience, enable both by default
scrcpy --otg                             # keyboard and mouse

喜欢和,它仅在设备通过USB连接时才有效。

--hid-keyboard
--hid-mouse

文本注入首选项

键入文本时会生成两种类型的事件

  • 键事件,表示按键被按下或释放;
  • 文本事件,表示已输入文本

默认情况下,使用键事件注入字母,以便键盘在游戏中按预期运行(通常用于 WASD 键)。

但这可能会导致问题。如果遇到此类问题,可以通过以下方式避免:

scrcpy --prefer-text

(但这会破坏游戏中的键盘行为)

相反,你可以强制始终注入原始密钥事件:

scrcpy --raw-key-events

这些选项对 HID 键盘没有影响(在此模式下,所有键事件都作为扫描码发送)。

按键重复

默认情况下,按住某个键会生成重复的键事件。这可能会导致某些游戏的性能问题,在这些游戏中,这些事件无论如何都是无用的。

要避免转发重复的关键事件,请执行以下操作:

scrcpy --no-key-repeat

此选项对 HID 键盘没有影响(在此模式下,Android 直接处理按键重复)。

右键单击和中键单击

默认情况下,右键单击触发器返回(或开机),中键单击触发主页。要停用这些快捷方式并将点击内容转发到设备,请执行以下操作:

scrcpy --forward-all-clicks

文件放置

安装 APK

要安装APK,请将APK文件(以 结尾)拖放到scrcpy窗口中。

.apk

没有视觉反馈,日志打印到控制台。

将文件推送到设备

要将文件推送到设备上,请将(非APK)文件拖放到scrcpy窗口中。

/sdcard/Download/

没有视觉反馈,日志打印到控制台。

可以在启动时更改目标目录:

scrcpy --push-target=/sdcard/Movies/

音频转发

音频不是由 scrcpy 转发的。使用sndcpy

另请参阅问题 #14

快捷方式

在下面的列表中,是快捷方式修饰符。默认情况下,它是(左)或(左)。MODAltSuper

可以使用 进行更改。可能的键是 、 、 和 。例如:

--shortcut-mod
lctrl
rctrl
lalt
ralt
lsuper
rsuper

# use RCtrl for shortcuts
scrcpy --shortcut-mod=rctrl

# use either LCtrl+LAlt or LSuper for shortcuts
scrcpy --shortcut-mod=lctrl+lalt,lsuper

Super通常是WindowsCmd键。

行动 捷径
切换全屏模式 MOD+f
向左旋转显示 MOD+ (左)
向右旋转显示 MOD+ (右)
将窗口大小调整为 1:1(像素完美) MOD+g
调整窗口大小以删除黑色边框 MOD+w|双击左键¹
点击
HOME
MOD+h|中键点击
点击
BACK
MOD+b|右键单击²
点击
APP_SWITCH
MOD+s|第 4 次点击³
点击(解锁屏幕)⁴
MENU
MOD+m
点击
VOLUME_UP
MOD+ (上)
点击
VOLUME_DOWN
MOD+ (下)
点击
POWER
MOD+p
开机 右键单击²
关闭设备屏幕(保持镜像) MOD+o
打开设备屏幕 MOD+Shift+o
旋转设备屏幕 MOD+r
展开通知面板 MOD+n|第 5 次点击³
展开设置面板 MOD+n+n|双击第 5 次³
折叠面板 MOD+Shift+n
复制到剪贴板⁵ MOD+c
剪切到剪贴板⁵ MOD+x
同步剪贴板和粘贴⁵ MOD+v
注入计算机剪贴板文本 MOD+Shift+v
启用/禁用 FPS 计数器(在标准输出上) MOD+i
捏合缩放 Ctrl+点击移动
拖放APK文件 从计算机安装APK
拖放非APK文件 将文件推送到设备

¹双击黑色边框以将其删除。
²右键单击将打开屏幕(如果屏幕已关闭),否则按返回。
³第 4 和第 5 个鼠标按钮(如果鼠标有)。
⁴对于开发中的 React 原生应用,MENU 会触发开发菜单。
⁵仅在安卓上 >= 7。

具有重复键的快捷键通过再次松开并按下键来执行。例如,要执行“展开设置面板”:

  1. 按下并按住 .MOD
  2. 然后双击 。n
  3. 最后,释放.MOD

所有 + 快捷方式都转发到设备,因此它们由活动应用程序处理。Ctrl

自定义路径

要使用特定的二进制文件,请在环境变量中配置其路径:

adb
ADB

ADB=/path/to/adb scrcpy

要覆盖文件的路径,请在 中配置其路径。

scrcpy-server
SCRCPY_SERVER_PATH

要覆盖该图标,请在 中配置其路径。

SCRCPY_ICON_PATH

为什么叫渣滓

一位同事向我提出挑战,让我找到一个像gnirehtet一样不可发音的名字。

strcpy 复制 string; 复制 screen。

scrcpy

如何建造?

请参阅构建

常见问题

请参阅常见问题解答。

开发 人员

阅读开发人员页面

授权协议

Copyright (C) 2018 Genymobile
Copyright (C) 2018-2022 Romain Vimont

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

文章

联系

如果你遇到错误,请先阅读常见问题解答,然后再打开问题

对于一般问题或讨论,你还可以使用:

翻译

本自述文件的其他语言翻译可在维基中找到。

只有此自述文件保证是最新的。