scrcpy/README.pt-br.md

15 KiB
Raw Blame History

Only the original README is guaranteed to be up-to-date.

scrcpy (v1.12.1)

Esta aplicação fornece visualização e controle de dispositivos Android conectados via USB (ou via TCP/IP). Não requer nenhum acesso root. Funciona em GNU/Linux, Windows e macOS.

screenshot

Foco em:

  • leveza (Nativo, mostra apenas a tela do dispositivo)
  • performance (30~60fps)
  • qualidade (1920×1080 ou acima)
  • baixa latência (35~70ms)
  • baixo tempo de inicialização (~1 segundo para mostrar a primeira imagem)
  • não intrusivo (nada é deixado instalado no dispositivo)

Requisitos

O Dispositivo Android requer pelo menos a API 21 (Android 5.0).

Tenha certeza de ter ativado a depuração USB no(s) seu(s) dispositivo(s).

Em alguns dispositivos, você também precisará ativar uma opção adicional para controlá-lo usando o teclado e mouse.

Obtendo o app

Linux

No Debian (em testes e sid por enquanto):

apt install scrcpy

O pacote Snap está disponível: scrcpy.

Para Arch Linux, um pacote AUR está disponível: scrcpy.

Para Gentoo, uma Ebuild está disponível: scrcpy/.

Você também pode compilar a aplicação manualmente (não se preocupe, não é tão difícil).

Windows

Para Windows, para simplicidade, um arquivo pré-compilado com todas as dependências (incluindo adb) está disponível:

Também disponível em Chocolatey:

choco install scrcpy
choco install adb    # se você ainda não o tem

E no Scoop:

scoop install scrcpy
scoop install adb    # se você ainda não o tem

Você também pode compilar a aplicação manualmente.

macOS

A aplicação está disponível em Homebrew. Apenas a instale:

brew install scrcpy

Você precisa do adb, acessível através do seu PATH. Se você ainda não o tem:

brew cask install android-platform-tools

Você também pode compilar a aplicação manualmente.

Executar

Plugue um dispositivo Android e execute:

scrcpy

Também aceita argumentos de linha de comando, listados por:

scrcpy --help

Funcionalidades

Configuração de captura

Redução de tamanho

Algumas vezes, é útil espelhar um dispositivo Android em uma resolução menor para aumentar performance.

Para limitar ambos(largura e altura) para algum valor (ex: 1024):

scrcpy --max-size 1024
scrcpy -m 1024  # versão reduzida

A outra dimensão é calculada para que a proporção do dispositivo seja preservada. Dessa forma, um dispositivo em 1920x1080 será espelhado em 1024x576.

Mudanças no bit-rate

O Padrão de bit-rate é 8 mbps. Para mudar o bitrate do vídeo (ex: para 2 Mbps):

scrcpy --bit-rate 2M
scrcpy -b 2M  # versão reduzida

Limitar frame rates

Em dispositivos com Android >= 10, a captura de frame rate pode ser limitada:

scrcpy --max-fps 15

Cortar

A tela do dispositivo pode ser cortada para espelhar apenas uma parte da tela.

Isso é útil por exemplo, ao espelhar apenas um olho do Oculus Go:

scrcpy --crop 1224:1440:0:0   # 1224x1440 no deslocamento (0,0)

Se --max-size também for especificado, redimensionar é aplicado após os cortes.

Gravando

É possível gravar a tela enquanto ocorre o espelhamento:

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

Para desativar o espelhamento durante a gravação:

scrcpy --no-display --record file.mp4
scrcpy -Nr file.mkv
# interrompe a gravação com Ctrl+C
# Ctrl+C não encerrar propriamente no Windows, então desconecte o dispositivo

"Frames pulados" são gravados, mesmo que não sejam mostrado em tempo real (por motivos de performance). Frames tem seu horário carimbado no dispositivo, então [Variação de atraso nos pacotes] não impacta na gravação do arquivo.

Conexão

Wireless/Sem fio

Scrcpy usa adb para se comunicar com o dispositivo, e adb pode conectar-se à um dispositivo via TCP/IP:

  1. Conecte o dispositivo a mesma rede Wi-Fi do seu computador.
  2. Pegue o endereço de IP do seu dispositivo (Em Configurações → Sobre o Telefone → Status).
  3. Ative o adb via TCP/IP no seu dispositivo: adb tcpip 5555.
  4. Desplugue seu dispositivo.
  5. Conecte-se ao seu dispositivo: adb connect DEVICE_IP:5555 (substitua o DEVICE_IP).
  6. Execute scrcpy como de costume.

Pode ser útil diminuir o bit-rate e a resolução:

scrcpy --bit-rate 2M --max-size 800
scrcpy -b2M -m800  # versão reduzida

N-dispositivos

Se alguns dispositivos estão listados em adb devices, você precisa especificar o serial:

scrcpy --serial 0123456789abcdef
scrcpy -s 0123456789abcdef  # versão reduzida

Se o dispositivo está conectado via TCP/IP:

scrcpy --serial 192.168.0.1:5555
scrcpy -s 192.168.0.1:5555  # versão reduzida

Você pode iniciar algumas instâncias do scrcpy para alguns dispositivos.

Conexão via SSH

Para conectar-se à um dispositivo remoto, é possível se conectar um cliente local adb à um servidor adb remoto (contanto que eles usem a mesma versão do protocolo adb):

adb kill-server    # encerra o servidor local na 5037
ssh -CN -L5037:localhost:5037 -R27183:localhost:27183 your_remote_computer
# mantém isso aberto

De outro terminal:

scrcpy

Igual para conexões sem fio, pode ser útil reduzir a qualidade:

scrcpy -b2M -m800 --max-fps 15

Configurações de Janela

Título

Por padrão, o título da janela é o modelo do dispositivo. Isto pode ser mudado:

scrcpy --window-title 'Meu dispositivo'

Posição e tamanho

A posição e tamanho iniciais da janela podem ser especificados:

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

Sem bordas

Para desativar decorações da janela:

scrcpy --window-borderless

Sempre visível

Para manter a janela do scrcpy sempre visível:

scrcpy --always-on-top

Tela cheia

A aplicação pode ser iniciada diretamente em tela cheia:

scrcpy --fullscreen
scrcpy -f  # versão reduzida

Tela cheia pode ser alternada dinamicamente com Ctrl+f.

Outras opções de espelhamento

Apenas leitura

Para desativar controles (tudo que possa interagir com o dispositivo: teclas de entrada, eventos de mouse, arrastar e soltar arquivos):

scrcpy --no-control
scrcpy -n

Desligar a tela

É possível desligar a tela do dispositivo durante o início do espelhamento com uma opção de linha de comando:

scrcpy --turn-screen-off
scrcpy -S

Ou apertando Ctrl+o durante qualquer momento.

Para ligar novamente, pressione POWER (ou Ctrl+p).

Frames expirados de renderização

Por padrão, para minimizar a latência, scrcpy sempre renderiza o último frame decodificado disponível e descarta o anterior.

Para forçar a renderização de todos os frames ( com o custo de aumento de latência), use:

scrcpy --render-expired-frames

Mostrar toques

Para apresentações, pode ser útil mostrar toques físicos(dispositivo físico).

Android fornece esta funcionalidade nas Opções do Desenvolvedor.

Scrcpy fornece esta opção de ativar esta funcionalidade no início e desativar no encerramento:

scrcpy --show-touches
scrcpy -t

Note que isto mostra apenas toques físicos (com o dedo no dispositivo).

Controle de entrada

Rotacionar a tela do dispositivo

Pressione Ctrl+r para mudar entre os modos Retrato e Paisagem.

Note que só será rotacionado se a aplicação em primeiro plano tiver suporte para o modo requisitado.

Copiar-Colar

É possível sincronizar áreas de transferência entre computador e o dispositivo, para ambas direções:

  • Ctrl+c copia a área de transferência do dispositivo para a área de trasferência do computador;
  • Ctrl+Shift+v copia a área de transferência do computador para a área de transferência do dispositivo;
  • Ctrl+v cola a área de transferência do computador como uma sequência de eventos de texto (mas quebra caracteres não-ASCII).

Preferências de injeção de texto

Existe dois tipos de eventos gerados ao digitar um texto:

  • eventos de teclas, sinalizando que a tecla foi pressionada ou solta;
  • eventos de texto, sinalizando que o texto foi inserido.

Por padrão, letras são injetadas usando eventos de teclas, assim teclados comportam-se como esperado em jogos (normalmente para tecladas WASD)

Mas isto pode causar problemas. Se você encontrar tal problema, pode evitá-lo usando:

scrcpy --prefer-text

(mas isto vai quebrar o comportamento do teclado em jogos)

Transferência de arquivo

Instalar APK

Para instalar um APK, arraste e solte o arquivo APK(com extensão .apk) na janela scrcpy.

Não existe feedback visual, um log é imprimido no console.

Enviar arquivo para o dispositivo

Para enviar um arquivo para o diretório /sdcard/ no dispositivo, arraste e solte um arquivo não APK para a janela do scrcpy.

Não existe feedback visual, um log é imprimido no console.

O diretório alvo pode ser mudado ao iniciar:

scrcpy --push-target /sdcard/foo/bar/

Encaminhamento de áudio

Áudio não é encaminhando pelo scrcpy. Use USBaudio (Apenas linux).

Também veja issue #14.

Atalhos

Ação Atalho Atalho (macOS)
Alternar para modo de tela cheia Ctrl+f Cmd+f
Redimensionar janela para pixel-perfect(Escala 1:1) Ctrl+g Cmd+g
Redimensionar janela para tirar as bordas pretas Ctrl+x | Clique-duplo¹ Cmd+x | Clique-duplo¹
Clicar em HOME Ctrl+h | Clique-central Ctrl+h | Clique-central
Clicar em BACK Ctrl+b | Clique-direito² Cmd+b | Clique-direito²
Clicar em APP_SWITCH Ctrl+s Cmd+s
Clicar em MENU Ctrl+m Ctrl+m
Clicar em VOLUME_UP Ctrl+ (cima) Cmd+ (cima)
Clicar em VOLUME_DOWN Ctrl+ (baixo) Cmd+ (baixo)
Clicar em POWER Ctrl+p Cmd+p
Ligar Clique-direito² Clique-direito²
Desligar a tela do dispositivo Ctrl+o Cmd+o
Rotacionar tela do dispositivo Ctrl+r Cmd+r
Expandir painel de notificação Ctrl+n Cmd+n
Esconder painel de notificação Ctrl+Shift+n Cmd+Shift+n
Copiar área de transferência do dispositivo para o computador Ctrl+c Cmd+c
Colar área de transferência do computador para o dispositivo Ctrl+v Cmd+v
Copiar área de transferência do computador para dispositivo Ctrl+Shift+v Cmd+Shift+v
Ativar/desativar contador de FPS(Frames por segundo) Ctrl+i Cmd+i

¹Clique-duplo em bordas pretas para removê-las.
²Botão direito liga a tela se ela estiver desligada, clique BACK para o contrário.

Caminhos personalizados

Para usar um binário específico adb, configure seu caminho na variável de ambiente ADB:

ADB=/caminho/para/adb scrcpy

Para sobrepor o caminho do arquivo scrcpy-server, configure seu caminho em SCRCPY_SERVER_PATH.

Por quê scrcpy?

Um colega me desafiou a encontrar um nome impronunciável como gnirehtet.

strcpy copia uma string; scrcpy copia uma screen.

Como compilar?

Veja BUILD.

Problemas comuns

Veja FAQ.

Desenvolvedores

Leia a developers page.

Licença

Copyright (C) 2018 Genymobile
Copyright (C) 2018-2020 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.

Artigos