Blog Linux Avante

Controle dispositivos Android de uma área de trabalho com scrcpy (instalação Ubuntu, Fedora, Debian, Linux Mint)

4 de janeiro de 2021

controle scrcpy Android do desktop Linux

scrcpy é um aplicativo gratuito e de código aberto para exibir e controlar dispositivos Android conectados via USB (ou sem fio, mas com desempenho inferior) de um desktop Linux, Windows ou macOS.

Requer pelo menos Android 5.0 e a depuração adb habilitada no dispositivo Android. O acesso root não é necessário.

O scrcpy se concentra em leveza, desempenho e qualidade, oferecendo 30 ~ 60 FPS, com resolução de 1920x1080 ou mais. Ele também tem uma baixa latência, algo entre 70 e 100 ms. Devo dizer que o desempenho do scrcpy me surpreendeu quando tentei pela primeira vez, quase parecia que estava com o dispositivo Android em minhas mãos, e não o estava usando remotamente do meu computador desktop Linux.

A comunicação entre o servidor (dispositivo Android neste caso) e o cliente (computador de mesa) é feita por meio de um soquete em um túnel adb. O servidor transmite vídeo H.264 da tela do dispositivo, passando-o para o cliente para decodificá-lo e exibi-lo, sem buffer para minimizar a latência. Os eventos de mouse e teclado são capturados e transmitidos ao servidor, que os injeta no dispositivo Android.

Características:

  • Controle dispositivos Android a partir de um desktop (com um mouse e teclado) executando Linux, Windows ou macOS
  • Funciona por USB ou WiFi (embora o desempenho diminua ao usá-lo por WiFi)
  • Permite gravar a tela do Android durante o espelhamento
  • É possível limitar a largura e altura da resolução de espelhamento do Android
  • Permite alterar a taxa de bits do vídeo
  • A tela do dispositivo pode ser cortada
  • Pode espelhar vários dispositivos ao mesmo tempo
  • O aplicativo scrcpy pode ser iniciado diretamente em tela cheia
  • Para apresentações, scrcpy pode mostrar toques físicos no dispositivo Android (apenas toques físicos, com o dedo no dispositivo!)
  • Instale o APK arrastando-o e soltando-o na janela scrcpy ou envie um arquivo para o dispositivo /sdcard arrastando e soltando um arquivo não APK
  • Modo somente leitura para desativar a interação usando teclas de entrada, eventos de mouse e arrastar e soltar

O encaminhamento de áudio não funciona, sendo esta uma limitação do Android Open Accessory Protocol.

Se você acha que a qualidade não é a melhor (com fontes ou gradientes, por exemplo), provavelmente é porque a tela foi reduzida. Mude o dispositivo Android para o modo paisagem e execute o scrcpy em tela cheia (Ctrl + F) para obter melhor qualidade.

Também é importante notar que o nome "scrcpy" vem de "screen copy". Isso deve tornar mais fácil de lembrar 😁️.

scrcpy pode ser baixado de https://github.com/Genymobile/scrcpy, os desenvolvedores que oferecem binários pré-compilados para Microsoft Windows e um pacote Homebrew para macOS. Há um pacote Arch Linux AUR e um Gentoo Ebuild disponível também.

Relacionado ao Android:

Instale o scrcpy no Ubuntu, Fedora, Debian ou Linux Mint

controle scrcpy Android do Ubuntu, Fedora ou Debian

Achei as instruções oficiais do scrcpy build para Linux um pouco confusas, então decidi tentar torná-las mais diretas. Há um novo pacote scrcpy snap não oficial disponível na loja Snap, mas ele não funcionou em meu desktop Ubuntu 18.10, então provavelmente ainda precisa de algum trabalho. O pacote scrcpy agora funciona, então você pode instalar o aplicativo mais facilmente usando o pacote de snap scrcpy.

Eu tentei as etapas abaixo e me arrumei no Ubuntu 18.10 e 18.04 e no Fedora 29. Como o Ubuntu é baseado no Debian e o Linux Mint no Ubuntu, ele também deve funcionar nesses e em outras distribuições Linux baseadas no Debian ou Ubuntu.

1. Instale as dependências necessárias para criar e executar o scrcpy no Debian, Ubuntu e Linux Mint ou Fedora

Debian, Ubuntu ou Linux Mint

Comandos para usar no terminal

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

O primeiro comando ativa o repositório RPMFusion - ignore se já estiver ativado em sua máquina Fedora.

Comandos para usar no terminal

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

É importante notar que Meson 0.37 ou mais recente é necessário (se você estiver no Ubuntu 16.04, habilite o repositório Backports para poder instalar uma versão mais recente do Meson). Ao contrário das instruções oficiais de construção, o OpenJDK não está incluído no meu guia porque usa o jar scrcpy-server pré-compilado para tornar as coisas mais fáceis.

Estas são as únicas instruções específicas da distro, portanto, se você souber como instalar essas dependências (que podem ter nomes diferentes dependendo da distribuição Linux que você está usando) para alguma outra distribuição Linux, as outras etapas devem ser as mesmas.

2. Baixe e instale o jar do servidor scrcpy

Baixe o scrcpy-server-v*.jar mais recente da página de lançamentos do aplicativo e coloque-o em sua pasta de início. Se o arquivo não tiver a extensão .jar, renomeie-o e adicione-o você mesmo.

Em seguida, instale-o em /usr/local/bin (embora também seja instalado em /usr/local/share/scrcpy, por algum motivo, o scrcpy pesquisa por ele em /usr/local/bin):

Comandos para usar no terminal

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

3. Baixe o código-fonte da versão mais recente do Scrcpy e extraia-o em sua pasta de início

Baixe o código-fonte do scrcpy (o arquivo .tar.gz, por exemplo) da página de lançamentos do aplicativo e extraia-o em seu diretório inicial em uma pasta chamada scrcpy (remova o número da versão do nome da pasta do scrcpy - isso torna mais fácil para usar essas instruções com versões futuras do Scrcpy).

A pasta inicial agora deve ter um arquivo chamado scrcpy-server-v*.jar (por exemplo, scrcpy-server-v1.17.jar para scrcpy v1.17) e uma pasta chamada scrcpy.

4. Crie e instale o scrcpy

Para compilar o scrcpy, navegaremos até a pasta scrcpy, compilaremos o aplicativo e o instalaremos:

Comandos para usar no terminal

cd scrcpy

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

cd build

ninja

sudo ninja install

Se você estiver instalando uma versão diferente do scrcpy, substitua scrcpy-server-v1.17.jar do segundo comando pelo nome de arquivo exato que contém a versão que você está instalando.

Agora você pode remover a pasta scrcpy de seu diretório inicial, se desejar.

Como usar o scrcpy no Linux para controlar um dispositivo Android a partir do desktop Linux (ou gravar sua tela)

Já mencionei isso no início do artigo, mas acho que devo dizê-lo novamente. Você precisa de um dispositivo Android 5.0 ou mais recente para controlá-lo a partir da área de trabalho usando o scrcpy. Além do mais, certifique-se de habilitar adb debugging em seu dispositivo Android. Em alguns dispositivos, você também pode precisar ativar uma "depuração USB (configurações de segurança)" opção adicional para poder controlar o dispositivo Android a partir do seu computador desktop.

Para usar o scrcpy, conecte seu dispositivo Android ao computador via USB e execute o scrcpy em um terminal:

Comandos para usar no terminal

scrcpy

Se você não autorizou o computador atual com seu dispositivo Android usando adb, ao executar o scrcpy pela primeira vez, certifique-se de que a tela do dispositivo Android esteja desbloqueada e autorize o scrcpy (clique em OK no dispositivo Android quando for solicitada a autorização)!

Também é importante notar que, no meu caso, em um computador onde não executei o adb antes, tive que executar o scrcpy 3 vezes até que funcionasse (provavelmente não espera o tempo suficiente para a autorização), então você pode querer faça isso também, caso não funcione imediatamente:

logix@logix22:~$ 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

logix@logix22:~$ 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

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

Quer gravar a tela do Android, enquanto controla o dispositivo Android usando seu desktop (com um teclado e mouse)? Execute o scrcpy com --record seguido pelo nome do arquivo para gravar, com mkv ou mp4 como extensão. Por exemplo.:

Comandos para usar no terminal

scrcpy --record file.mp4

Você pode estar se perguntando como retornar à tela anterior no dispositivo Android ao controlá-lo da área de trabalho, ir para a tela inicial ou usar o alternador de aplicativos para dispositivos com teclas físicas - você pode usar alguns atalhos:

  • Mouse right-click ou Ctrl + b (ou Ctrl + Backspace) para BACK
  • Mouse middle-click ou Ctrl + h (ou o botão Home) para HOME
  • Ctrl + s para o alternador de aplicativos

Para saber como controlar o dispositivo Android sem fio de sua área de trabalho, consulte as instruções detalhadas na página do projeto do aplicativo. Consulte também a página do scrcpy para uso mais avançado, como reduzir o tamanho da tela espelhada, alterar a taxa de bits, cortar a tela ou executar várias instâncias do scrcpy com vários dispositivos Android.

Como desinstalar o Scrcpy (instalado da fonte)

Os usuários que desejam remover o scrcpy instalado da fonte (usando as instruções neste artigo), podem executar estes dois comandos:

Comandos para usar no terminal

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

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

sudo rm /usr/local/bin/scrcpy

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.