- Автозапуск программ на Android: что это, как работает и как настроить
- Какие программы работают в фоновом режиме?
- Какие последствия от приложений, постоянно работающих в фоновом режиме?
- Как отключить приложение из автозапуска?
- Инструкция для Android 8, 9, 10 и выше
- Инструкция для Android 7 и ниже
- Использование All-In-One Toolbox
- Управление автозагрузкой для андроид
- Android. Автозапуск приложения при загрузке: теория и практика
- 1. Теория
- 2. Практика: ошибки и особенности эксплуатации
- 3. Отладка ресивера в эмуляторе и на реальных устройствах.
- Итоги
Автозапуск программ на Android: что это, как работает и как настроить
Автозапуск приложений — это процесс, сопровождающийся самопроизвольной загрузкой какого-либо приложения, либо одной из его частей для выполнения задач в фоновом режиме. Фоновый режим же — это активная работа процесса в закрытом состоянии. То есть, даже если вы не используете программу, она работает. Большинство программ сейчас работает в Android по такому принципу.
Чтобы было ещё понятнее, приведем пример из жизни. Например, любой знакомый вам мессенджер или клиент социальной сети может работать в фоновом режиме, регулярно проверяя наличие новых сообщений, ответов, лайков, постов и так далее. Даже если у вас будет закрыт мессенджер или клиент, вы сможете получить уведомление о том, что пришло новое сообщение. Для того чтобы клиент или мессенджер смог узнать о полученном уведомлении, ему приходится работать в фоновом режиме, постоянно проверяя наличие этих самых сообщений. Даже если экран смартфона будет выключен, а все процессы из недавно запущенных закрыты — мессенджер или клиент будет работать.
Из статьи вы узнаете
Какие программы работают в фоновом режиме?
Всего есть два типа приложений, работающих в фоновом режиме, а именно:
- С автозапуском;
- С активной работой в фоне.
Приложения с автозапуском. Активируются вместе с системой и работают в фоновом режиме всегда. К таким программам можно отнести клиенты, мессенджеры, утилиты для отображения погоды, лаунчеры, виджеты и так далее. Они никогда не выключаются и остаются в фоновом режиме.
Приложения с активной работой в фоне. Это программы, которые находятся в данном режиме только при активной работе. Например, вы начали установку любимой игры из Google Play. Сервис будет загружать файл, даже если вы в этот момент занимаетесь другими процессами на телефоне. Как только игра будет уставлена, Play Market сам выгрузится из фонового режима и не будет там появляться, пока пользователь снова не попытается что-то скачать/переустановить/обновить. К таким приложениям относятся плееры, загрузчики, торренты, браузеры и так далее.
Какие последствия от приложений, постоянно работающих в фоновом режиме?
Если у вас будет работать несколько программ в таком режиме, то это нормально. При этом вполне допустимая практика, что запущены именно те процессы, которые, казалось бы, не нужны сейчас вовсе. Например, не стоит выгружать браузер из оперативной памяти, так как он не создает высокой нагрузки на систему, но при этом каждый его запуск не будет «забивать» процессор, а лишь выгрузится из оперативной памяти. Также не стоит убирать из автозапуска сервисы Google, приложения-лаунчеры, виджеты, мессенджеры и прочие программы с push уведомлениями.
Количество процессов, допустимых для работы в фоновом режиме, вычисляется непосредственно из количества оперативной памяти и их «прожорливости». Например, если у вас 4GB оперативной памяти, для вас вполне нормальным будет загрузка её на 1GB. Если же будет свободен только 1GB, то, однозначно, стоит выключить несколько программ из автозагрузки.
Чтобы вычислить норму для вашего аппарата, воспользуйтесь простой формулой: посмотрите сколько у вас приложений работает в фоновом режиме. Все эти утилиты показаны в настройках, в разделе «Память» и отображаются как работающие процессы. Если их много, но все они занимают где-то 10-40 MB, то большого вреда они не нанесут. Зачастую такие приложения висят в автозапуске для более быстрого старта, для поиска обновлений, отправки анонимной статистики, попытке получить новые уведомления и так далее.
Если в фоне висит приложение, которое очень часто используется, и оно занимает мизерное количество оперативной памяти – не трогайте его. Но если очень редко его запускаете, а оно все равно висит в активных задачах – смело отключайте.
Особое внимание обратите на программы, занимающие от 10% оперативной памяти. Их стоит по максимуму отключать. Но если среди них есть необходимые вам мессенджеры, сервисы Google и прочие важные процессы, то их лучше оставить. Аналогия проста: если часто пользуетесь утилитой или программой, то не стоит их отключать. Вполне нормально, когда в фоне работает около 10 приложений, из которых 5 вовсе не используется так часто.
Как отключить приложение из автозапуска?
Чисто технически отключить приложение из автозапуска нельзя. Но можно ограничить его работу в фоне. Для этого выполните действия, описанные ниже.
Инструкция для Android 8, 9, 10 и выше
- Зайдите в «Настройки» смартфона и найдите пункт «Приложения и уведомления», откройте его.
Откройте список всех приложений, кликнув по вкладке «Сведения о приложениях».
Откройте приложение, которое по вашему мнению нужно выключить в фоновом режиме, то есть, убрать из автозагрузки. Для более удобного поиска можно воспользоваться алфавитным ползунком слева или поиском вверху справа.
Открыв программу, в ней кликните по вкладке «Батарея».
В пункте «Батарея» найдите ползунок «Работа в фоновом режиме» и выключите его. Также рекомендуем перейти в пункт «Батарея» и установить статус приложения на «Экономить заряд батареи».
Таким образом можно легко отключать приложения из автозапуска, просто выключая их работу в фоновом режиме.
Андроид – продуманная операционная система, поэтому она сама распознает процессы и программы, которые могут работать в фоне и позволяет отключать это. А если приложение не может работать в данном режиме и автоматически запускаться, этого ползунка не будет предусмотрено изначально.
Инструкция для Android 7 и ниже
Если у вас более старая версия, то вам стоит выполнить ряд следующих действий. Они также могут быть полезны и для Android Oreo версий:
- Зайдите в «Настройки» смартфона и найдите пункт «О телефоне» или «Система» в самом низу списка.
Нажмите на пункт «Номер сборки» несколько раз, пока не появится вкладка «Для разработчиков». Затем вернитесь на главный экран настроек и откройте там пункт «Для разработчиков».
В этом пункте найдите вкладку «Неактивные приложения» и через нее легко отключайте активные процессы.
Использование All-In-One Toolbox
Это многофункциональное приложение, основная задача которого — оптимизация работы операционной системы Андроид. Среди доступных инструментов предоставляется возможность остановить автозагрузку некоторых системных и большинства пользовательских приложений.
- Установите All-In-One Toolbox из официального магазина с помощью представленной ниже кнопки.
Источник
Управление автозагрузкой для андроид
Вот и обновление пожаловало.
Кайфуем!
:rolleyes:
Что нового в этой версии:
2.1.1:
fix rare bug with unrooted phones
preferences screen also appears in selected language
Android 3.1 compatible
2.1:
intent list can be opened and collapsed (on advanced tab)
usb debug mode change is handled automatically
improved root detection
new and updated translations
improved application running
updated libraries
honeycomb compatible
many small improvements and fixes I don’t remember 🙂
Autorun Manager Donate v2.2
What’s New in v2.2:
one year anniversary release 🙂
seamlessly disables its startup receiver if basic mode is not used at all
size of the application is slightly reduced
improved license handling
reduced memory use
improved script execution performance
some fixes
Версия, переведенная до конца на русский, за исключением справки
Скачать: Autorun_Manager_v.2.2_Rus_by_Azat_777.apk ( 358.5 КБ )
Попросил перевести, может и здесь пригодится
П.С.: На счет определения слова «intent», оно не поддается переводу на русский никак
Autorun Manager Donate v3.0
Recent changes:
— Honeycomb and ICS compatibility
— new design with easier Dashboard
— filters in advanced mode
— system discovery
— recommended method detection
— better and more help
— updated translations
pavel103,
в паре они еще лучше работают 🙂
у Autorun Manager есть преимущество, он может запретить запускаться перезапускаемым приложениям.
но и от Autostarts не могу отказаться, уж очень как то удобно, когда видишь все события и все реакции на эти события определенных программ, и можешь запретить реагировать.
п.с. первый раз когда попробовал такие приложения, меня очень обрадовала скорость загрузки телефона 🙂 с 2 мин сократилась до 20-30 сек! Шикарно!
Потому что избавился от всякого хлама который сует себя в автозагрузку. память не резиновая ее на всех не хватит. да и зачем всяким игрушкам запускаться при запуске телефона? Зачем им висеть в памяти когда мне они не нужны?
Поэтому такие программы весьма полезны и востребованы! 🙂
Источник
Android. Автозапуск приложения при загрузке: теория и практика
1. Теория
Взглянув на примеры из официального источника (например, этот и этот) и изучив рекомендации на сайте stackoverflow.com, можно выделить следующие правила:
- В манифесте в элементе «manifest» указать разрешение:
В манифесте в элементе «application» зарегистрировать ваш ресивер на прием сообщения ACTION_BOOT_COMPLETED:
Используйте правильное полное или относительное имя класса вашего broadcast-ресивера. В описании ресивера без необходимости не указывайте атрибуты «enabled», «exported» и т.д. Вполне достаточно настроек и атрибутов по умолчанию.
Код вашего broadcast-ресивера:
Если ваш ресивер используется только для сообщения ACTION_BOOT_COMPLETED, то проверка «if» не обязательна. Однако иногда разработчики используют один и тот же ресивер для разных сообщений. В этом случае фильтруйте сообщения, проверяя их внутри метода onReceive.
Приложение должно быть установлено на внутреннюю память. ОС Android устроена таким образом, что сообщение ACTION_BOOT_COMPLETED отправляется приложениям перед монтированием внешний памяти. Поэтому приложения, установленные на внешней памяти, никогда не получат это сообщение. Чтобы указать системе не устанавливать приложение на внешнюю память, в манифесте НЕ нужно прописывать для атрибута «@android:installLocation» значения «auto» или «preferExternal». По умолчанию, т.е. если этот атрибут не указан, ОС установит ваше приложение только на внутреннюю память. Однако согласно официальной документации лучше явно указать значение «internalOnly», чтобы у вас и других разработчиков не возникло искушение в будущем указать иное значение.
После установки или принудительной остановки (force stop) приложение должно быть запущено хотя бы один раз, чтобы система «запомнила» это приложение для отправки ему сообщения ACTION_BOOT_COMPLETED. Такое поведение было реализовано в версии Android 3.1 в целях безопасности. В чем суть? Все только что установленные приложения находятся в состоянии «stopped» (не путать с активити, т.к. ОС управляет этим состоянием у приложений и активити по-разному). В это же состояние приложение «уходит», когда пользователь в настройках телефона принудительно его останавливает. Пока приложение находится в таком состоянии, оно не будет запущено системой ни по какой причине (например, через ACTION_BOOT_COMPLETED), исключая, конечно же, запуск самим пользователем. Благодаря такому нововведению немалая часть«вирусни и троянцев» перестала работать, т.к. уже нет возможности запуститься автоматом после установки.
Исключение составляют системные приложения: см. замечание пользователя kolipass.
Особенности режима Fast boot в HTC-устройствах. Известно, что HTC-устройства не перезагружаются в классическом смысле, а используют так наз. режим Fast boot (это одна из форм гибернации), сохраняя состояние ОС на диск. Поэтому сообщение ACTION_BOOT_COMPLETED не отправляется системой, т.к. в действительности перезагрузка не происходит (см. здесь). Вместо ACTION_BOOT_COMPLETED система может отправить следующие сообщения:
В вашем приложении укажите в теге «receiver» кроме ACTION_BOOT_COMPLETED также вышеуказанные сообщения. Кроме этого необходимо прописать разрешение в дополнение к п.1:
2. Практика: ошибки и особенности эксплуатации
Разберем ошибки, которые совершают новички при настройке приложения и в коде.
- После установки или force stop приложение ни разу не запускалось (см. п.1.5).
Приложение установлено не на внутренней памяти, или пользователь вручную перенес его на внешнюю память (см. п. 1.4).
У некоторых разработчиков прием начинал работать, когда они указывали относительное имя класса ресивера.
Также некоторые разработчики, отлаживая приложение, в logcat не видели своих сообщений из ресивера. Используйте Toast для отладки:
Опечатки или несуществующие сообщения внутри тега ресивера:
Неправильное положение элементов в манифесте приложения:
- «uses-permission» должен быть указан только как прямой потомок элемента «manifest», не нужно его указывать/дублировать в теге «receiver»;
- тег «receiver» должен быть указан только как прямой потомок элемента «application».
Как было указано выше, некоторые устройства используют режим Fast boot. Можно попробовать в настройках телефона отключить этот режим или учесть п. 1.6.
В приложении нет ни одной активити, поэтому после установки у пользователя нет возможности хотя бы 1 раз запустить ваше приложение. Из-за этого сообщение ACTION_BOOT_COMPLETED не будет отправлено в ваше приложение.
Не ошибки, но все же: указаны лишние, не обязательные атрибуты в теге «receiver», например («uses-permission», «enabled», «exported»):
3. Отладка ресивера в эмуляторе и на реальных устройствах.
- В терминале выполните:
Далее, чтобы отправить ACTION_BOOT_COMPLETED всем приложениям, наберите в терминале:
Или для отправки ACTION_BOOT_COMPLETED конкретному приложению наберите в терминале:
В эмуляторе: установите ваше ПО, запустив его из студии. При этом студия соберет ваш проект, установит приложение и запустит его. После этого закройте эмулятор (это аналогично выключению на реальном устройстве). Чтобы получить сообщение ACTION_BOOT_COMPLETED, запустите эмулятор из AVD-менеджера, а не с помощью кнопки «Run app» в тулбаре студии.
После запуска эмулятора во вкладке Android Monitor укажите запущенный эмулятор и ваше приложение, чтобы просмотреть логи logcat.
Итоги
Чтобы ваше приложение запускалось при загрузке на всех устройствах, манифест как минимум должен выглядеть так:
Код ресивера, как правило, будет таким:
Надеюсь, эта статья поможет новичкам побороть «коварного врага» под названием «ACTION_BOOT_COMPLETED».
Источник