Запустить Android-приложение онлайн хотят по очень разным причинам. Пользователю Mac или iPhone на час нужно одно приложение, которое есть только под Android. Ревьюеру прислали APK, и он не хочет подпускать его к личному телефону. Разработчик хочет показать сборку на Android 12 и Android 17, не таская с собой два устройства. Продакт-менеджер хочет посмотреть приложение конкурента на модели телефона, которой нет ни у кого в офисе.
«Без установки» значит, что на ваш компьютер или телефон ничего не попадает. Само приложение всё равно где-то устанавливается: на телефон, который работает в другом месте и транслирует экран в ваш браузер. В этом гайде сравним способы это сделать и пройдём самый быстрый из них.
Четыре способа в сравнении
| Вариант | Время на настройку | Устройство | Версии Android | Лучше всего для | Ограничения |
|---|---|---|---|---|---|
| Эмулятор на вашем компьютере | 20-60 минут в первый раз, несколько гигабайт загрузок | Типовые профили устройств | Любые, по образу на версию | Разработчиков, которые уже работают в Android Studio | Нужна мощная машина; ничего не онлайн |
| Превью приложения в браузере | Секунды | Типовое | Несколько | Коротких демо приложения, которое вы делаете | Лимиты на сессию, обычно нужна загруженная вами сборка |
| Запасной телефон | Нисколько, если он есть | Одна модель | Та, что на нём стоит | Быстрых личных проверок | Одна версия, часто устаревшая |
| Облачный телефон | Около минуты | Собран по модели настоящего телефона | С 12 по 17 | Любого приложения или APK из браузера | Нужен интернет; после бесплатных минут платно |
Эмулятор на собственном компьютере — классический ответ разработчика, и стоит он только времени. Тем, кто не разработчик, он подходит плохо, и онлайн он вообще не работает. Превью в браузере, сделанные для демо приложений, быстрые, но рассчитаны на разработчиков, которые показывают свои сборки. Запасной телефон выручает, пока не понадобится вторая версия Android.
Облачный телефон находится посередине: полноценный Android-телефон, который работает в дата-центре, транслирует экран в ваш браузер и принимает ввод с мыши и клавиатуры. Подробнее о его отличии от эмулятора на странице Android-эмулятор онлайн.
Как запустить приложение на облачном телефоне
- Создайте телефон. Зарегистрируйтесь, выберите версию Android от 12 до 17 и страну. Телефон, собранный по одной из 150+ моделей настоящих телефонов, будет готов примерно через минуту.
- Откройте его экран в браузере. Клики становятся касаниями, колесо мыши прокручивает, клавиатура печатает.
- Установите приложение. Перетащите APK-файл на телефон в панели управления, загрузите его через API или выполните
adb install app.apkчерез реле ADB. Каждый способ описан в документации по приложениям. - Пользуйтесь приложением. Войдите, пройдите сценарии, сделайте скриншоты.
- Остановите или сбросьте телефон. Остановленный телефон ничего не стоит. Сброс возвращает его в чистое состояние, удаляя приложение и его данные.
В Clousd первые 30 минут бесплатны и не требуют карты, обычно этого хватает, чтобы попробовать одно приложение. Дальше поминутная оплата стоит $0.004 в минуту, пока телефон работает, и не больше $0.80 за телефон в день.
Какую версию Android выбрать
Большинство приложений работают на любой актуальной версии, но в двух случаях выбирать нужно осознанно. Приложения, которые годами не обновлялись, могут вести себя странно на самом новом Android, а новые приложения могут отказываться ставиться на старые версии. Диапазон подскажет сам APK:
aapt2 dump badging app.apk | grep -E "sdkVersion|targetSdkVersion"
sdkVersion — самый низкий уровень API, который принимает приложение, а targetSdkVersion — тот, под который его собирали и тестировали. Соответствие версиям Android: API 31 и 32 — это Android 12, 33 — Android 13, 34 — Android 14, 35 — Android 15, 36 — Android 16, 37 — Android 17.
Практичный выбор по умолчанию — версия, ближайшая к target приложения. Если вопрос в том, как приложение ведёт себя у типичного пользователя, а не на последнем релизе, разумно взять версию из середины диапазона, например 14 или 15. Сомневаетесь — создайте два телефона и сравните: второй займёт ещё одну минуту.
APK, XAPK и разделённые APK
Не каждая загрузка — это один APK. Приложения, опубликованные бандлами, приходят как базовый APK плюс отдельные файлы под плотность экрана, язык и процессор. Сайты загрузок упаковывают их в .xapk или .apks, а это zip-архивы.
- Обычный
.apkставится напрямую. - Бандл распакуйте и поставьте части вместе:
adb install-multiple base.apk split_config.arm64_v8a.apk split_config.en.apk split_config.xxhdpi.apk
- Если в бандле несколько вариантов под разные процессоры, ставьте тот, что подходит телефону. Какой именно, подскажет
adb shell getprop ro.product.cpu.abi.
Ошибка INSTALL_FAILED_NO_MATCHING_ABIS значит, что в установленных файлах нет кода под процессор телефона, а INSTALL_FAILED_MISSING_SPLIT — что не хватает части бандла.
Прежде чем доверять APK
Запуск приложения на чужом телефоне уже держит его подальше от ваших файлов, фото и аккаунтов. Но несколько проверок всё равно окупаются:
- Источник. Предпочитайте сайт самого разработчика или магазин. Сайты-зеркала перепаковывают файлы.
- Хеш. Если разработчик публикует SHA-256, сравните:
sha256sum app.apkв Linux или macOS,certutil -hashfile app.apk SHA256в Windows. - Подпись.
apksigner verify --print-certs app.apkиз Android build tools показывает, кто подписал файл. Сертификат, который отличается от официальной версии, — тревожный знак. - Разрешения.
aapt2 dump permissions app.apkперечисляет, что просит приложение. Фонарику, который хочет доступ к контактам, они не нужны. - Аккаунты. Не входите в свои основные аккаунты внутри приложения, которому не доверяете. Посмотрите на телефоне, что оно делает, а потом сбросьте его.
Разработчикам: показать сборку, не выпуская её
Облачный телефон — быстрый способ показать сборку тому, у кого нет Android Studio. Поставьте debug-сборку, откройте телефон и проведите ревьюера по ней на созвоне. Чтобы проверить версии, создайте два телефона, один на Android 12, другой на Android 17, поставьте одинаковый APK и сравните.
Логи идут по тому же подключению ADB:
adb logcat --pid=$(adb shell pidof -s com.example.app)
Более полный процесс с тестовыми прогонами на нескольких версиях и чтением логов падений описан в гайде о тестировании Android-приложения онлайн.
Чего здесь нет
- Приложений для iOS. Это только Android-телефоны.
- SMS. Телефон не принимает текстовые сообщения, так что приложение, которое при регистрации настаивает на SMS-коде, его там не получит.
- Вещей из физического мира. Камера, направленная на ваш стол, или бесконтактная оплата картой не входят в возможности телефона, который работает в дата-центре.


