Launch on boot на Android: как настроить автозапуск приложений при включении

Настройка launch on boot на Android упирается в ограничение самой системы: начиная с Android 3.1 приложение не может запуститься при загрузке, пока пользователь хотя бы раз не открыл его вручную, а с Android 12 фоновый старт дополнительно блокируется ограничениями на фоновую активность. Поэтому автозапуск при включении реализуется через системное разрешение RECEIVE_BOOT_COMPLETED, сторонние приложения-автозагрузчики или режим киоска — в зависимости от задачи.

Типичные сценарии, где нужен запуск при загрузке: цифровые таблички и инфокиоски, ТВ-приставки, которые должны сразу открывать плеер, терминалы самообслуживания, домашние панели управления умным домом. В каждом случае после перезагрузки устройство должно само вернуться в рабочее состояние без участия человека.

Как Android обрабатывает запуск при загрузке

После включения устройства система рассылает широковещательное сообщение android.intent.action.BOOT_COMPLETED. Приложение, которое объявило в манифесте приёмник (BroadcastReceiver) на это событие и запросило разрешение RECEIVE_BOOT_COMPLETED, получает сигнал и может выполнить короткую операцию — например, запланировать задачу или поднять сервис.

Ключевой нюанс: receiver не должен выполнять длительную работу. Если обработка занимает больше нескольких секунд, система завершит процесс. Поэтому правильный паттерн — из receiver запускать foreground service или планировать задачу через WorkManager, а не выполнять всё прямо в обработчике.

Дополнительное ограничение — stopped state: приложение, установленное, но ни разу не открытое, не получает системные broadcast-сообщения. То же происходит после принудительной остановки через Настройки → Приложения → Остановить. Пока пользователь снова не запустит приложение вручную, автозапуск работать не будет.

Способ 1: сторонние приложения для автозапуска

Для пользовательских сценариев (ТВ-приставка, планшет-панель) проще всего использовать готовые утилиты, которые сами подписаны на событие загрузки и стартуют нужные приложения. В каталогах вроде Google Play и альтернативных магазинов такие инструменты ищутся по запросам «autostart», «launch on boot», «autostart app».

Общий порядок настройки у большинства таких утилит схож:

  • 📲 Установите приложение-автозагрузчик и откройте его хотя бы один раз — иначе оно само не получит событие загрузки.
  • 🎯 Выберите целевое приложение, которое должно запускаться при включении устройства.
  • ⏱️ При наличии опции задержки установите паузу 10–30 секунд, чтобы система успела инициализировать сеть и сервисы.
  • 🔋 Отключите оптимизацию батареи для автозагрузчика, чтобы система его не «усыпляла».
  • 🔁 Перезагрузите устройство и проверьте результат.

☑️ Настройка автозапуска на Android

Выполнено: 0 / 5

На Android TV и приставках часть лаунчеров и плееров имеет собственную опцию «запускаться при включении» — проверьте настройки самого приложения до установки сторонних утилит.

Способ 2: автозапуск через разрешения и настройки системы

Часть устройств — прежде всего прошивки Xiaomi (MIUI/HyperOS), Huawei (EMUI), Oppo, Vivo — имеют встроенный менеджер автозапуска. Путь к нему зависит от оболочки, обычно это раздел вроде Настройки → Приложения → Автозапуск или пункт в приложении «Безопасность». Точный путь сверяйте с документацией своей прошивки — расположение пункта меняется между версиями.

Для корректной работы launch on boot обычно требуются три системных разрешения, которые стоит проверить у целевого приложения:

  • 🔓 Автозапуск — разрешает приложению реагировать на загрузку системы (на прошивках, где такой пункт есть).
  • 🪟 Поверх других окон — нужно, чтобы приложение могло показать активность поверх лаунчера сразу после старта.
  • 🔋 Без ограничений фоновой активности — исключает приложение из агрессивной оптимизации батареи.
⚠️ Внимание: на устройствах Xiaomi, Huawei и ряда других вендоров системный «убийца» фоновых процессов может завершать даже корректно настроенные приложения. Если автозапуск работает нестабильно, проверьте настройки энергосбережения конкретной прошивки — поведение заметно различается между производителями.

Способ 3: запуск через ADB

Если устройство используется как терминал и к нему есть доступ по ADB, можно вручную отправить команду запуска активности после загрузки. Это подходит для тестирования и разовых сценариев, но не заменяет полноценный автозапуск — команда выполняется с компьютера или по сети.

adb shell am start -n com.example.app/.MainActivity

Для автоматизации на самом устройстве без ПК используются приложения-автоматизаторы (например, Tasker или аналоги), где триггером выступает событие «Device Boot» / «Загрузка устройства», а действием — запуск приложения. Такая связка работает без root, но требует выдать автоматизатору разрешения на фоновую работу.

📊 Какой способ launch on boot вы используете?
Стороннее приложение-автозагрузчик
Встроенный автозапуск прошивки
Tasker или другой автоматизатор
Собственное приложение с BOOT_COMPLETED

Способ 4: реализация в собственном приложении

Разработчику для поддержки launch on boot нужно добавить в манифест разрешение и приёмник. Минимальный каркас выглядит так:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<receiver android:name=".BootReceiver"

android:enabled="true"

android:exported="true">

<intent-filter>

<action android:name="android.intent.action.BOOT_COMPLETED" />

</intent-filter>

</receiver>

В самом receiver нельзя выполнять длительные операции и напрямую показывать активность на современных версиях Android — система ограничивает фоновый запуск активностей. Рабочий вариант — из receiver запустить foreground service с уведомлением либо запланировать задачу через WorkManager с экспедированным выполнением.

Для киоск-режима существует более надёжный путь: сделать приложение домашним экраном (home launcher) или использовать режим lock task / dedicated device через Device Policy Controller. Тогда после загрузки система сама поднимет нужное приложение как лаунчер, и отдельный receiver не потребуется.

Почему receiver не стартует на Android 12+

Начиная с Android 12 действуют ограничения на запуск активностей из фона — приложение не может просто показать экран из BOOT_COMPLETED receiver. Используйте foreground service с уведомлением, WorkManager или схему с home-лаунчером. Также проверьте, что receiver объявлен с android:exported="true" и приложение не находится в stopped state.

Сравнение способов автозапуска

СпособRoot не нуженНадёжностьСложность
Приложение-автозагрузчикДаСредняя, зависит от прошивкиНизкая
Встроенный автозапуск прошивкиДаСредняяНизкая
Tasker / автоматизаторыДаВыше среднейСредняя
Свой receiver + BOOT_COMPLETEDДаВысокая при корректной реализацииВысокая
Home-лаунчер / киоск-режимДаМаксимальнаяСредняя

Для устройств, которые должны работать без присмотра (киоски, табло, ТВ-панели), самый устойчивый вариант — назначить целевое приложение домашним экраном, а не полагаться на broadcast-автозапуск. Лаунчер система поднимает гарантированно, тогда как старт из receiver может быть отложен или заблокирован оптимизациями.

Почему автозапуск не срабатывает: диагностика

Если после перезагрузки приложение не открывается, проверяйте причины в таком порядке — от самых частых к редким. Сначала убедитесь, что приложение вообще запускалось вручную после установки или последней принудительной остановки: это базовое условие получения события загрузки.

Далее проверьте энергосбережение. Откройте Настройки → Приложения → [приложение] → Батарея и установите режим без ограничений. На прошивках с агрессивным управлением фоном дополнительно поищите разделы «Защита активности», «Фоновые процессы» или фирменные менеджеры ускорения — их названия зависят от вендора.

⚠️ Внимание: не пытайтесь обойти ограничения через root-модификации системных разделов или отключение системных оптимизаций целиком — это снижает безопасность и время автономной работы. Сначала исчерпайте штатные разрешения и настройки.

Если настраиваете собственное приложение, проверьте логи через adb logcat сразу после загрузки: там видно, дошло ли событие до receiver и не упал ли процесс с ошибкой. Отсутствие записей о receiver обычно означает stopped state или некорректный манифест.

Часто задаваемые вопросы

Работает ли launch on boot без root-прав?

Да. Событие BOOT_COMPLETED, сторонние автозагрузчики, Tasker и режим home-лаунчера работают на стоковых устройствах без root. Root может потребоваться только для нестандартных сценариев вроде запуска системных сервисов.

Почему приложение не запускается после перезагрузки, хотя всё настроено?

Чаще всего приложение находится в stopped state (его ни разу не открывали или принудительно остановили) либо его завершает система оптимизации батареи. Откройте приложение вручную и отключите для него ограничения фоновой активности.

Можно ли запустить сразу несколько приложений при загрузке?

Да. Автозагрузчики и автоматизаторы позволяют добавить список приложений, запускаемых последовательно. Учитывайте, что одновременный старт нескольких тяжёлых приложений замедляет загрузку — используйте задержки между запусками.

Запускается ли приложение при загрузке на Android TV?

Механизм тот же — через BOOT_COMPLETED. На приставках дополнительно проверьте, есть ли у нужного плеера или лаунчера встроенная опция автозапуска, и не блокирует ли прошивку фирменный менеджер энергосбережения.

Что надёжнее: автозагрузчик или режим киоска?

Для устройств без присмотра надёжнее киоск-подход: назначить приложение домашним экраном или использовать lock task mode. Система поднимает лаунчер гарантированно, тогда как broadcast-автозапуск может быть отложен или заблокирован прошивкой.