Introducción

scrcpy
es una herramienta hecha por los mismos creadores de Genymobile y disponible para Linux, Windows y MacOS que permite visualizar desde el PC la pantalla del teléfono móvil que se encuentre conectado, de manera similar a como se experimentó [anteriormente con FFMpeg]({% post_url blog/2020-06-20-espejo-de-la-pantalla-de-Android-en-linux-ubuntu-utilizando-ffmpeg %}). Adicionalmente este software incluye la posibilidad de interactúar con el teléfono desde el PC y la posibilidad de copiar & pegar.
Según los autores, los objetivos de diseño de la aplicación son los siguientes.
- Liviano.
- Desempeño (30~60fps).
- Calidad (1920×1080 o superior).
- Baja latencia (35~70ms).
- Corto tiempo de inicio (~1 segundo para mostrar la primer imagen).
- No intrusivo (no queda nada instalado en el teléfono).
Prerequisitos
Es necesario contar con la siguiente configuración del teléfono.
- El teléfono debe tener por lo menos Android 5.0 (API 21) como sistema operativo.
- Activar Depuración por USB (USB debugging) bajo las Developer Options. Hacer esto antes de conectar el teléfono al PC.
- Aceptar en el teléfono la conexión desde el PC.
Si esto se ha realizado exitosamente, el teléfono empieza a ser visto desde el PC.
$ adb devices
List of devices attached
ce091929fcde1a1804 device
Si aparece el mensaje unauthorized
significará que aún no ha sido aprobado el acceso al teléfono a través de la conexión.
Instalación
Para Ubuntu/Mint la instalación puede realizarse a través de dos diferentes tipos de medios. APT:
$ sudo apt install scrcpy
Y Snap:
$ sudo snap install scrcpy
La versión disponible en el repositorio de Snap parece estar mas actualizada.
Forma de uso
Para utilizar la aplicación sólo es necesario ejecutarla.
$ scrcpy
Esta aplicación recibe varias opciones interesantes para ajustar su funcionamiento. A continuación se describen algunas de las opciones mas útiles.
Grabar la pantalla
Opción | Descripción |
---|---|
--record file.mp4 | Graba en video lo mostrado en la pantalla del móvil. El formato es determinado por la opción --record-format o la extensión del archivo destino |
--record-format format | Determina el formato de la grabación, puede ser mp4 o mkv . |
--no-display | Desactiva la pantalla del teléfono (en conjunto con --record ) |
Configurar recursos
Opción | Descripción |
---|---|
--max-size 1024 | Determina el tamaño de la imagen manteniendo automáticamente la proporción de la imagen. (0 sin límite) |
--bit-rate 2M | Tasa de bits transmitidos. Por defecto 8M. |
--max-fps 15 | Máximo permitido de frames por segundo. |
--render-driver name | Solicita a SDL el uso de un driver específico. Las opciones disponibles son direct3d , opengl , opengles2 , opengles , metal y software . |
Configurar orientación
Opción | Descripción |
---|---|
--rotation value | Determina el estado inicial de rotación. Los valores disponibles son 0 (rotación natural), 1 (90°), 2 (180°) y 3 (-90°) |
--lock-video-orientation value | Bloquea la pantalla con una rotación específica. Los valores disponibles son 0 , 1 , 2 y 3 , cada valor aumenta 90° en contra de las manecillas del reloj. Por defecto es -1 (sin rotación). |
Configurar visualización
Opción | Descripción |
---|---|
--window-title ‘My device’ | Determina el titulo |
--window-x 100 | Establece el valor inicial para la posición horizontal de la ventana. Por defecto es “auto ”. |
--window-y 100 | Establece el valor inicial para la posición vertical de la ventana. Por defecto es “auto ”. |
--window-width 800 | Establece el ancho inicial de la ventana. Por defecto es 0 . |
--window-height 600 | Establece el alto inicial de la ventana. Por defecto es 0 . |
--always-on-top | Evita que la ventana sea enviada hacia atrás por otra |
--fullscreen | Inicia en modo pantalla completa |
--stay-awake | Mantiene siempre encendida la pantalla |
--turn-screen-off | Apaga la pantalla al inicio de la conexión |
Configurar interacción
Opción | Descripción |
---|---|
--no-control | Desactiva la interacción con la pantalla desde el PC |
--show-touches | Muestra la ubicación de los taps |
Transferir archivos
Para transferir archivos (adb push
) desde el PC hacia el teléfono sólo es necesario arrastrar y soltar el archivo sobre la ventana de la aplicación.
Si el archivo es un *.apk
, éste se instalará en el teléfono, de lo contrario, el archivo se copiará en /sdcard/
.
Es posible ajustar la ruta donde se almacenarán los archivos copiados (por defecto /sdcard/
) a cualquiera bajo este directorio mediante el siguiente comando.
$ scrcpy --push-target /sdcard/foo/bar/
Atajos de teclado
Atajo | Linux | MacOS |
---|---|---|
Switch fullscreen mode | Ctrl +f | Cmd +f |
Rotate display left | Ctrl +← (left) | Cmd +← (left) |
Rotate display right | Ctrl +→ (right) | Cmd +→ (right) |
Resize window to 1:1 (pixel-perfect) | Ctrl +g | Cmd +g |
Resize window to remove black borders | Ctrl +x | Double-click¹ | Cmd +x | Double-click¹ |
Click on HOME | Ctrl +h | Middle-click | Ctrl +h | Middle-click |
Click on BACK | Ctrl +b | Right-click² | Cmd +b | Right-click² |
Click on APP_SWITCH | Ctrl +s | Cmd +s |
Click on MENU | Ctrl +m | Ctrl +m |
Click on VOLUME_UP | Ctrl +↑ (up) | Cmd +↑ (up) |
Click on VOLUME_DOWN | Ctrl +↓ (down) | Cmd +↓ (down) |
Click on POWER | Ctrl +p | Cmd +p |
Power on | Right-click² | Right-click² |
Turn device screen off (keep mirroring) | Ctrl +o | Cmd +o |
Turn device screen on | Ctrl +Shift +o | Cmd +Shift +o |
Rotate device screen | Ctrl +r | Cmd +r |
Expand notification panel | Ctrl +n | Cmd +n |
Collapse notification panel | Ctrl +Shift +n | Cmd +Shift +n |
Copy device clipboard to computer | Ctrl +c | Cmd +c |
Paste computer clipboard to device | Ctrl +v | Cmd +v |
Copy computer clipboard to device and paste | Ctrl +Shift +v | Cmd +Shift +v |
Enable/disable FPS counter (on stdout) | Ctrl +i | Cmd +i |
¹ Double-click on black borders to remove them.
² Right-click turns the screen on if it was off, presses BACK otherwise.
Recursos
scrcpy
de Genymobile
https://github.com/Genymobile/scrcpy