Scrcpy: зеркалирование экрана Android¶
Scrcpy — это свободная кроссплатформенная утилита с открытым исходным кодом для отображения экрана и управления устройством на базе Android с персонального компьютера. Программа передаёт видеопоток с устройства на компьютер через USB- или TCP/IP-соединение, позволяя использовать мышь и клавиатуру для взаимодействия с интерфейсом Android. Название является аббревиатурой от англ. screen copy («копия экрана»). Проект разрабатывается французским программистом Роме́ном Вига́ (Romain Viguier) и распространяется под лицензией Apache 2.0.
¶История
Первая публичная версия scrcpy была выпущена в марте 2018 года. Изначально проект создавался как лёгкая альтернатива существующим решениям для зеркалирования, таким как Vysor или Mobizen, которые требовали установки проприетарных клиентов или наличия учётной записи. Ключевым отличием scrcpy стала ориентация на использование стандартных компонентов Android (Android Debug Bridge, ADB) и отсутствие необходимости установки дополнительного приложения на само устройство. С момента релиза проект активно развивается сообществом: регулярно добавляются новые возможности, улучшается производительность и расширяется список поддерживаемых операционных систем (Windows, macOS, Linux).
В 2023 году вышла версия 2.0, ознаменовавшая переход на новый протокол передачи данных на базе кодека AV1, что позволило снизить требования к пропускной способности канала и улучшить качество изображения при низкой скорости соединения. По состоянию на 2024 год репозиторий проекта на GitHub насчитывает более 100 тысяч звёзд, что подтверждает его популярность среди разработчиков и энтузиастов.
¶Принцип работы
Scrcpy использует архитектуру «клиент-сервер». Серверная часть, написанная на языке Java, запускается непосредственно на Android-устройстве через механизм ADB. Она захватывает видеопоток с помощью системного API MediaProjection (для записи экрана) и кодирует его в формат H.264 или AV1. Закодированные данные передаются на компьютер, где клиентская часть, написанная на языке C, декодирует их и отображает в окне. Для передачи команд ввода (касания, нажатия клавиш, свайпы) используется обратный канал через ADB.
Утилита не требует прав суперпользователя (root) и работает на устройствах с Android версии 5.0 (API 21) и выше. Для корректной работы необходимо включить в настройках Android «Отладку по USB» (в разделе «Для разработчиков»). На устройство не требуется устанавливать сторонние приложения: серверная часть автоматически загружается через ADB при каждом запуске.
¶Функциональные возможности
¶Основные операции
- Зеркалирование экрана в реальном времени с минимальной задержкой (обычно 30–70 мс при USB-подключении).
- Управление мышью и клавиатурой: клики интерпретируются как касания, колесо мыши — как прокрутка, а ввод с клавиатуры транслируется в текстовые поля.
- Копирование текста между компьютером и устройством в обе стороны через системный буфер обмена.
- Перетаскивание файлов с компьютера на устройство для их копирования в память (обычно в папку
Downloads).
¶Дополнительные режимы
- Работа по сети: при подключении через TCP/IP (беспроводной режим) задержка незначительно возрастает, но сохраняется полная функциональность.
- Запись экрана в файл в формате MP4 без необходимости установки дополнительных программ.
- Отключение экрана устройства во время работы: изображение передаётся на компьютер, а дисплей смартфона гаснет, что снижает энергопотребление.
- Ограничение частоты кадров (по умолчанию 60 FPS) и битрейта для экономии ресурсов.
¶Клавиатурные сочетания
Для управления предусмотрены горячие клавиши, например: Alt+Home — переход на главный экран, Alt+Backspace — кнопка «Назад», Alt+m — свернуть приложение, Ctrl+c / Ctrl+v — копирование и вставка текста. Полный список сочетаний доступен в документации проекта.
¶Установка и использование
Способ установки зависит от операционной системы:
- Windows: загружается исполняемый файл с официального сайта или из репозитория релизов на GitHub. Для работы требуется предварительно установленный ADB.
- macOS: установка через пакетный менеджер Homebrew (
brew install scrcpy). - Linux: пакеты доступны в репозиториях большинства дистрибутивов (например,
apt install scrcpyдля Debian/Ubuntu) или через Snap.
Для запуска достаточно подключить устройство по USB и выполнить в терминале команду scrcpy. При первом запуске на экране смартфона появится системный запрос на разрешение записи экрана, который необходимо подтвердить. Утилита запускается в графическом окне, размер которого по умолчанию соответствует разрешению экрана устройства, но может масштабироваться пользователем.
¶Сравнение с аналогами
В отличие от коммерческих решений (Vysor, AirDroid), scrcpy полностью бесплатен и не содержит ограничений по времени использования или водяных знаков. По сравнению с эмуляторами Android (например, BlueStacks) scrcpy не эмулирует аппаратное обеспечение, а работает с реальным устройством, что обеспечивает полную совместимость с любыми приложениями и сервисами, включая те, которые блокируют запуск в виртуальной среде. Главное преимущество — минимальная задержка и высокая производительность, достигаемая за счёт прямого использования аппаратного кодека устройства.
Основным ограничением является необходимость наличия самого Android-устройства и включённой отладки по USB. Кроме того, для работы с некоторыми DRM-защищёнными приложениями (например, стриминговые сервисы) может потребоваться отключение шифрования видеопотока, что технически невозможно без модификации системы.
¶Применение
Scrcpy используется в нескольких сценариях:
- Разработка и тестирование приложений: позволяет быстро проверять интерфейс и поведение программы на реальном устройстве, не беря его в руки.
- Демонстрация и презентации: вывод экрана смартфона на проектор или большой монитор.
- Дистанционная помощь: возможность удалённо управлять устройством пользователя при устранении неполадок.
- Обучение и автоматизация: утилита часто применяется в связке с инструментами автоматизации тестирования (например, Appium) для записи сценариев.
¶Интересные факты
- Scrcpy поддерживает работу с несколькими устройствами одновременно — для этого нужно указать серийный номер конкретного устройства через параметр
-s. - В версии для Linux существует возможность запуска в полноэкранном режиме с автоматическим скрытием курсора мыши.
- Проект активно используется в сообществе энтузиастов для создания «умных» домашних панелей на базе старых Android-смартфонов, превращая их в информационные дисплеи.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →
