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:
/sdcard
arrastando e soltando um arquivo não APKO 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:
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.
sudo apt install adb ffmpeg libsdl2-2.0-0 make gcc pkg-config meson ninja-build libavcodec-dev libavformat-dev libavutil-dev libsdl2-dev
O primeiro comando ativa o repositório RPMFusion - ignore se já estiver ativado em sua máquina Fedora.
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.
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
):
sudo install scrcpy-server-v*.jar /usr/local/bin/scrcpy-server.jar
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
.
Para compilar o scrcpy, navegaremos até a pasta scrcpy, compilaremos o aplicativo e o instalaremos:
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.
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:
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.:
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:
right-click
ou Ctrl + b
(ou Ctrl + Backspace
) para BACKmiddle-click
ou Ctrl + h
(ou o botão Home
) para HOMECtrl + s
para o alternador de aplicativosPara 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.
Os usuários que desejam remover o scrcpy instalado da fonte (usando as instruções neste artigo), podem executar estes dois comandos:
sudo rm /usr/local/share/scrcpy/scrcpy-server.jar
sudo rm /usr/local/bin/scrcpy-server.jar
sudo rm /usr/local/bin/scrcpy
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
Control Android Devices From A Desktop With scrcpy (Ubuntu, Fedora, Debian, Linux Mint Installation)