Показывает, что тема получения сообщения ACTION_BOOT_COMPLETED остается актуальной и по сей день. Как видно, многие новички сталкиваются с проблемой: они не получают в своих приложениях сообщение ACTION_BOOT_COMPLETED. В этой статья я попробую резюмировать данные из официальной документации, опыт многих разработчиков из stackoverflow.com, а также свой опыт. Итак, как же победить этого «коварного врага» под названием «ACTION_BOOT_COMPLETED»?

1. Теория

Взглянув на примеры из официального источника (например, этот и этот) и изучив рекомендации на сайте stackoverflow.com, можно выделить следующие правила:
  1. В манифесте в элементе «manifest» указать разрешение:

  2. В манифесте в элементе «application» зарегистрировать ваш ресивер на прием сообщения ACTION_BOOT_COMPLETED:


    или


    Используйте правильное полное или относительное имя класса вашего broadcast-ресивера. В описании ресивера без необходимости не указывайте атрибуты «enabled», «exported» и т.д. Вполне достаточно настроек и атрибутов по умолчанию.

  3. Код вашего broadcast-ресивера:

    Public class BootCompletedReceiver extends BroadcastReceiver { public BootCompletedReceiver() { } public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { // ваш код здесь } } }
    Если ваш ресивер используется только для сообщения ACTION_BOOT_COMPLETED, то проверка «if» не обязательна. Однако иногда разработчики используют один и тот же ресивер для разных сообщений. В этом случае фильтруйте сообщения, проверяя их внутри метода onReceive.

  4. Приложение должно быть установлено на внутреннюю память. ОС Android устроена таким образом, что сообщение ACTION_BOOT_COMPLETED отправляется приложениям перед монтированием внешний памяти. Поэтому приложения, установленные на внешней памяти, никогда не получат это сообщение . Чтобы указать системе не устанавливать приложение на внешнюю память, в манифесте НЕ нужно прописывать для атрибута "@android:installLocation" значения «auto» или «preferExternal». По умолчанию, т.е. если этот атрибут не указан, ОС установит ваше приложение только на внутреннюю память. Однако согласно официальной документации лучше явно указать значение «internalOnly», чтобы у вас и других разработчиков не возникло искушение в будущем указать иное значение.

  5. После установки или принудительной остановки (force stop) приложение должно быть запущено хотя бы один раз, чтобы система «запомнила» это приложение для отправки ему сообщения ACTION_BOOT_COMPLETED. Такое поведение было реализовано в версии Android 3.1 в целях безопасности. В чем суть? Все только что установленные приложения находятся в состоянии «stopped» (не путать с активити, т.к. ОС управляет этим состоянием у приложений и активити по-разному). В это же состояние приложение «уходит», когда пользователь в настройках телефона принудительно его останавливает. Пока приложение находится в таком состоянии, оно не будет запущено системой ни по какой причине (например, через ACTION_BOOT_COMPLETED), исключая, конечно же, запуск самим пользователем. Благодаря такому нововведению немалая часть«вирусни и троянцев» перестала работать, т.к. уже нет возможности запуститься автоматом после установки.

    Исключение составляют системные приложения: см. замечание пользователя kolipass .

  6. Особенности режима Fast boot в HTC-устройствах. Известно, что HTC-устройства не перезагружаются в классическом смысле, а используют так наз. режим Fast boot (это одна из форм гибернации), сохраняя состояние ОС на диск. Поэтому сообщение ACTION_BOOT_COMPLETED не отправляется системой, т.к. в действительности перезагрузка не происходит (). Вместо ACTION_BOOT_COMPLETED система может отправить следующие сообщения:


    В вашем приложении укажите в теге «receiver» кроме ACTION_BOOT_COMPLETED также вышеуказанные сообщения. Кроме этого необходимо прописать разрешение в дополнение к п.1:

2. Практика: ошибки и особенности эксплуатации

Разберем ошибки, которые совершают новички при настройке приложения и в коде.

3. Отладка ресивера в эмуляторе и на реальных устройствах.


Итоги

Чтобы ваше приложение запускалось при загрузке на всех устройствах, манифест как минимум должен выглядеть так:


Код ресивера, как правило, будет таким:

Public class BootCompletedReceiver extends BroadcastReceiver { public BootCompletedReceiver() { } public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { Toast toast = Toast.makeText(context.getApplicationContext(), context.getResources().getString(R.string.your_message), Toast.LENGTH_LONG); toast.show(); Log.d("myapp", context.getResources().getString(R.string.your_message); // ваш код здесь } } }
Надеюсь, эта статья поможет новичкам побороть «коварного врага» под названием «ACTION_BOOT_COMPLETED».

Платформа «Андроид», так же как и другие операционные системы, по прошествии определенного времени начинает работать медленнее. На дорогих премиум-устройствах снижение производительности практически не ощущается, потому как у них мощный процессор и более чем достаточно оперативной памяти. Но далеко не все могут позволить себе подобные гаджеты, поэтому для многих данная проблема актуальна, как никогда.

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

Единственный действенный вариант в этом случае - это отключить автозапуск приложений на «Андроиде» и работать без лагов и тормозов. Но не все так просто в этом деле, как кажется на первый взгляд, и платформа вместе с разработчиками программ частенько подкидывают проблемы.

Стоит ли отключать автозапуск приложений?

Если вы устанавливаете по десятку программ на платформу ежедневно, то проблем здесь, в принципе, быть не должно. Потому как платформа самостоятельно должна, так сказать, бороться за оперативную память. То есть если производительность гаджета начинает падать, то система автоматически закрывает неиспользуемые приложения для стабилизации ОС.

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

Особенности процедуры

Но не стоит отключать автозапуск приложений на «Андроиде» для всех подряд. Бывают и необходимые исключения, вроде официальных приложений от «Гугл» и каких-то работающих антивирусных программ. Конечно, платформа «Андроид» имеет неплохую защиту «от дурака», и если вы по незнанию попытаетесь прекратить системные или действительно важные процессы, то система вас предупредит, причем очень настойчиво.

Но печальная правда говорит о том, что добрая половина скачанных из Сети программ (как правило, игровых и нелегальных) поселяется в автозапуске и мешает операционной системе нормально работать. И, как уже говорилось выше, единственным вариантом остается просто отключить автоматический запуск приложений на Android. Этим мы как раз и попробуем заняться, благо инструментов для решения данной проблемы хватает.

Итак, разберемся, как на «Андроиде» отключить автозапуск приложений и сделать это максимально безболезненно как для самой платформы, так и для пользователя. Рассмотрим основные варианты решения проблемы и особенности разных версий ОС.

Отключение автозапуска на «Андроид 4.х.х»

Перед тем, как отключить автостартующие программы в Android, необходимо выяснить, какие именно приложения потребляют (и потребляют ли вообще) ресурсы операционной системы. Для этого необходимо перейти в настройки гаджета и открыть раздел «Приложения» или «Диспетчер приложений».

Сразу стоит оговориться, что отключение автозапуска лишних процессов в Android 4.2.2 местными средствами - это лишь временное решение, а для внесения кардинальных изменений понадобится сторонний софт.

Особенности процесса

Далее нужно найти вкладку «Запущенные» и ознакомиться с ней. «Плей Маркет» от «Гугла» почтовые клиенты и программы со специфическим значком андроида трогать не стоит, а вот к остальным нужно внимательно присмотреться. Напротив каждого приложения отображается занимаемый объем оперативной памяти. По этому показателю как раз и можно определить прожорливость софта. Для отключения необходимо выбрать неугодное приложение и тапнуть на «Остановить принудительно», а затем ответить «Да» или «Ок».

Если в работает какая-то подозрительная утилита, то ее также лучше отключить. Автозапуск приложений на «Андроиде» будет стартовать после каждой перезагрузки гаджета, поэтому процедуру придется повторять снова и снова. Но часто перезагружать операционную нет необходимости, поэтому подобное временное решение многих вполне устраивает. Как уже упоминалось выше, убрать автозагрузку программ в Android можно будет только с помощью сторонних менеджеров задач.

Отключение автозапуска на «Андроид 6.х.х»

С прошивками Marshmallow все не так уж и просто. Непонятно зачем, но разработчики засунули возможность отключить автозапуск приложений на «Андроиде 6.0.1» и в версиях выше, что называется, к черту на рога. В принципе, новый «Андроид» очень неплох в плане оптимизации, гибкости пользовательских настроек и визуальной составляющей. Но вот системный функционал спрятан очень хорошо.

Перед тем как отключить автозапуск приложений на «Андроиде 6.х.х», необходимо включить режим разработчика. В меню переходим в «Настройки», затем «Сведения об аппарате», а после нужно кликнуть несколько раз на пункте «Номер сборки». После этого активируется режим разработчика и доступен специальный функционал.

Особенности процедуры

После этого необходимо опять перейти в «Настройки», и там уже появится пункт «Опции разработчика». Кликаем на нем и выбираем раздел «Запущенные сервисы». Здесь по аналогии с прошлыми поколениями ОС «Андроид» находится список активных приложений. Можно посмотреть общее время работы программ, занимаемое ими место на диске и объем оперативной памяти.

Для отключения процесса необходимо тапнуть на активном приложении и выбрать пункт «Выключить». После чего программа должна закрыться. Но эта процедура, опять-таки, является временным решением проблем, и после перезагрузки все будет по-прежнему. Полностью избавиться от приложения в автозагрузке можно, только лишь удалив его или взяв на вооружение специализированные сторонние утилиты. Наиболее толковых представителей последних рассмотрим ниже.

Greenify

Это одна из самых популярных утилит для управления автозагрузкой вашего мобильного гаджета. Софт можно использовать как с правами администратора (root), так и без оных. В первом случае приложение исчезнет из автозагрузки раз и навсегда, а во втором придется сделать пару кликов после перезагрузки гаджета.

После установки утилита оставит на рабочем столе свой виджет. Кликнув по нему, вы перейдете в рабочую зону программы. Для исключения из списка автозагрузок ненужных приложений достаточно нажать на плюс в нижней части экрана и добавить проблемную программу в перечень запрещенных. С рут-правами достаточно одного раза, а без них придется открывать Greenify и подтверждать ранее выполненные действия.

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

Autostarts

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

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

Интерфейс прост, а инструментарий интуитивно понятен. К тому же, приложение полностью русифицировано, поэтому никаких проблем возникнуть не должно. Здесь же в меню можно освободить память на внутреннем и внешних накопителях, а также поиграться с настройками потребления батареи. Последний момент позволяет отключать добрую половину системных процессов при низком заряде и возвращать их при высоком. Пороги легко настраиваются в процентных соотношениях.

Продукт имеет как платную, так и бесплатную модификацию, но, так же как и в случае с Greenify, первая обычным пользователям совершенно без надобности.

Показывает, что тема получения сообщения ACTION_BOOT_COMPLETED остается актуальной и по сей день. Как видно, многие новички сталкиваются с проблемой: они не получают в своих приложениях сообщение ACTION_BOOT_COMPLETED. В этой статья я попробую резюмировать данные из официальной документации, опыт многих разработчиков из stackoverflow.com, а также свой опыт. Итак, как же победить этого «коварного врага» под названием «ACTION_BOOT_COMPLETED»?

1. Теория

Взглянув на примеры из официального источника (например, этот и этот) и изучив рекомендации на сайте stackoverflow.com, можно выделить следующие правила:
  1. В манифесте в элементе «manifest» указать разрешение:

  2. В манифесте в элементе «application» зарегистрировать ваш ресивер на прием сообщения ACTION_BOOT_COMPLETED:


    или


    Используйте правильное полное или относительное имя класса вашего broadcast-ресивера. В описании ресивера без необходимости не указывайте атрибуты «enabled», «exported» и т.д. Вполне достаточно настроек и атрибутов по умолчанию.

  3. Код вашего broadcast-ресивера:

    Public class BootCompletedReceiver extends BroadcastReceiver { public BootCompletedReceiver() { } public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { // ваш код здесь } } }
    Если ваш ресивер используется только для сообщения ACTION_BOOT_COMPLETED, то проверка «if» не обязательна. Однако иногда разработчики используют один и тот же ресивер для разных сообщений. В этом случае фильтруйте сообщения, проверяя их внутри метода onReceive.

  4. Приложение должно быть установлено на внутреннюю память. ОС Android устроена таким образом, что сообщение ACTION_BOOT_COMPLETED отправляется приложениям перед монтированием внешний памяти. Поэтому приложения, установленные на внешней памяти, никогда не получат это сообщение . Чтобы указать системе не устанавливать приложение на внешнюю память, в манифесте НЕ нужно прописывать для атрибута "@android:installLocation" значения «auto» или «preferExternal». По умолчанию, т.е. если этот атрибут не указан, ОС установит ваше приложение только на внутреннюю память. Однако согласно официальной документации лучше явно указать значение «internalOnly», чтобы у вас и других разработчиков не возникло искушение в будущем указать иное значение.

  5. После установки или принудительной остановки (force stop) приложение должно быть запущено хотя бы один раз, чтобы система «запомнила» это приложение для отправки ему сообщения ACTION_BOOT_COMPLETED. Такое поведение было реализовано в версии Android 3.1 в целях безопасности. В чем суть? Все только что установленные приложения находятся в состоянии «stopped» (не путать с активити, т.к. ОС управляет этим состоянием у приложений и активити по-разному). В это же состояние приложение «уходит», когда пользователь в настройках телефона принудительно его останавливает. Пока приложение находится в таком состоянии, оно не будет запущено системой ни по какой причине (например, через ACTION_BOOT_COMPLETED), исключая, конечно же, запуск самим пользователем. Благодаря такому нововведению немалая часть«вирусни и троянцев» перестала работать, т.к. уже нет возможности запуститься автоматом после установки.

    Исключение составляют системные приложения: см. пользователя .

  6. Особенности режима Fast boot в HTC-устройствах. Известно, что HTC-устройства не перезагружаются в классическом смысле, а используют так наз. режим Fast boot (это одна из форм гибернации), сохраняя состояние ОС на диск. Поэтому сообщение ACTION_BOOT_COMPLETED не отправляется системой, т.к. в действительности перезагрузка не происходит (). Вместо ACTION_BOOT_COMPLETED система может отправить следующие сообщения:


    В вашем приложении укажите в теге «receiver» кроме ACTION_BOOT_COMPLETED также вышеуказанные сообщения. Кроме этого необходимо прописать разрешение в дополнение к п.1:

2. Практика: ошибки и особенности эксплуатации

Разберем ошибки, которые совершают новички при настройке приложения и в коде.

3. Отладка ресивера в эмуляторе и на реальных устройствах.


Итоги

Чтобы ваше приложение запускалось при загрузке на всех устройствах, манифест как минимум должен выглядеть так:


Код ресивера, как правило, будет таким:

Public class BootCompletedReceiver extends BroadcastReceiver { public BootCompletedReceiver() { } public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { Toast toast = Toast.makeText(context.getApplicationContext(), context.getResources().getString(R.string.your_message), Toast.LENGTH_LONG); toast.show(); Log.d("myapp", context.getResources().getString(R.string.your_message); // ваш код здесь } } }
Надеюсь, эта статья поможет новичкам побороть «коварного врага» под названием «ACTION_BOOT_COMPLETED».

Всем привет. Очень долгое время на я хотел написать статью, как отключать приложения которые находятся в автозагрузке, но не как руки до этого не могли дойти. Сегодня мы покажем вам как отключить автоматический запуск приложений на устройстве Android. Рассмотрим примеры на разных устройствах, а именно Sony Xperia M4 и Samsung Galaxy Tab 2 . Зачем отключать автозагрузку? Дело в том, что рано или поздно после покупки смартфона или планшета, мы забиваем его различными приложениями. Не смотря на то, что мы дополняем устройство приложениями у него уже имеется базовый набор программ, а оперативная память и процессор остается тем же. Из-за этого наше устройство начинает работать намного медленней. Помимо замедленной работы, идет нагрузка на ваш аккумулятор. Устройство начинает заметно терять уровень заряда. Так вот, менять свое устройство не кто не хочет, но поддерживать и сохранить скорость работы своего флагмана все хотят.

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

Отключаем автозагрузку на устройствах с андроид Marshmallow (Android 6.0.1). В моем случае я делаю это на Sony M4 .

Если у вас установлена версия Android как написано выше,вам необходимо включить режим разработчика. Кто не знает, можете узнать из этой статьи: . В ней подробно написано что необходимо делать. Откройте раздел "Разработчика " .


Далее в этом разделе найдите пункт "Запущенные сервисы" или "Работающие Приложения". Дальше вы увидите список программ и игр, а точнее большой список приложений. В этом списке показаны не только приложения, а показывает когда был произведен последний запуск и влияние программы на ваше устройство. Так же показывает память устройства, сведение о системе, свободную память в устройстве. Так же можно посмотреть процессы работающие в кэш.

Выберите одно из работающих приложений или то, которое вам необходимо закрыть. Вы попадете в запущенное приложение, для его остановки вам необходимо нажать на "Стоп " или "Остановить ". Иногда придется закрывать сразу несколько процессов от одного приложения. Ну сказать честно, что после перезагрузки приложения оно может запуститься повторно поэтому придется бороться с автозагрузкой.

Второго способа отключения приложений на моем устройстве нету, так как компания Sony сама разрабатывает и дорабатывает программное обеспечение для своих устройств. К примеру, чтобы не мучатся с приложениями и их отключением, на устройстве встроены Stamina и Ultra Stamina . Как ими пользоваться вы можете прочитать из этой статьи: .

На других устройствах может быть установлено сторонние или встроенное приложение с названием Doze . У кого не стоит можете скачать и установить его на свой смартфон или планшет. Скачать его может каждый и оно находиться в бесплатном доступе. Перед его установкой посмотрите, может оно у вас уже стоит. Для этого вам необходимо перейти в настройки вашего флагмана и перейти в раздел "Батарея или Аккумулятор ".После этого нажмите на троеточие в верхнем правом углу, а далее «Оптимизация батареи» Дальше будет список непослушных приложений. Нажмите на приложение которое нужно оптимизировать под вашу систему. После этого сама система начнет или возьмет не послушника под свой жесткий контроль.

Так же можно прибегнуть к другим сторонним приложением, на данный момент в маркете их большое количество. Но не кто не может гарантировать 100% работы этих приложений на ваших устройствах. Остаться только пробовать на своих устройствах. Наиболее требовательные приложения Greenify, Purify и Doze.

Так что показывать способ на устройстве Samsung Tab 2 показывать даже и не стоит, так как все действия одинаковы для всех устройств. Как и способ работы так и действия самой настройки.

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

Отключение автозапуска приложений несомненно должно ускорить старт в смартфоне или планшете. Без разницы андроид 5 или андроид 6 и сделать такой трюк можно без root.

Чтобы отключить элемент системы, его нужно убрать из списка автозапуска (автоматической загрузки при включении гаджета).

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

ПРИМЕЧАНИЕ: для некоторых системных приложений в андроид невозможно сделать запрет при старте, точнее после этого телефон может не работать как минимум с полным функционалом.

Способ первый отменить автозапуск приложений на андроид

ПРИМЕЧАНИЕ: этот вариант не очень эффективный, с его помощью принудительная блокировка делается, но не факт, что после перезагрузки приложения не будет автоматически запускаться, особенно если оно было встроенное производителем.

Поэтому, на этот вариант особо наедятся не стоит, но ничего другого в андроид задействовать нет – не предусмотрено разработчиком.

Как говорят что имеем, то имеем – если попытка оказалась неудачной, не пишите в комментариях не получилось (я бессилен в помощи), а переходите ко второму варианту.

Второй вариант намного предпочтительнее, эффективнее и быстрее, только требует установки программы.

При первом способе войдите в настройки, откройте приложения и перейдите в диспетчер приложений (на старых версиях его может не оказаться).

Выберите какое требуется отключить и нажмите на него. Я для примера на андроид 5.1 выбираю, только что установленное «Косынка».

Слева нажимаю «отключить», после чего щелкаю на «Отключить принудительно».

Теперь перезагружаю смартфон самсунг галакси и смотрим что получилось.

Как видите блокировка оказалась успешной – «Косынку» в автозапуске остановить получилось. Все сделано без root и дополнительных программ.

ПРИМЕЧАНИЕ: как обстоят дела на старых версиях андроид сейчас писать не буду, так как сейчас нет таких устройств. Только андроид 5.1, 6.0.1 и с андроид 7.0.

Способ второй запретить автозапуск приложений на андроид

Для этого варианта вам понадобится установить дополнительно программу, способную отключить автозапуск.

Таких разработок много. Одним требуется root, другие могут без него (очень многое зависит от того, что отключать). У меня есть своя подборка.

Просто и выберите для себя по своему усмотрению. Все на русском языке.

Если цель будет достигнута – отлично. Если нет форма комментариев в помощь – будем решать вместе.

Интернет, как всегда не молчит и о теме как приложения андроид остановить в автозапуске, чтобы устройство стало более резвым.

Все сходятся в одном – для этого нужны программы сторонних авторов, в частности Boot Manager – системных инструментов нет.

Бесспорно – вариант, с Boot Manager прокатит с версиями андроид 2.3, 3.4, 4.4 и так далее, только root, вам также понадобится.

ПРИМЕЧАНЕИЕ: получить root доступ, на версиях от 4.0 и ниже очень легко, а вот при попытке на андроид 5, не говоря о андроид 7 барьеры непреодолимы, разве что делать перепрививку.

Кто получил root, после установки Boot Manager потребуется запустить Xposed Installer и активируйте Boot Manager, затем планшет или смартфон перезагрузите.

После запуска телефона, запускаем Boot Manager, видим список приложение в автозапуске и можете быстренько требуемые отключить.

Первая платная – вторая бесплатная и что самое важное говорится в названии – отключать можно без root прав.

Функционал у первой просто внушительной, впрочем, как для платной программы это вполне нормально.

ВНИМАНИЕ: чем меньше программ будет в автозапуске, тем быстрее запустится устройство, сохранится в резерве системная память и аккумулятор дольше продержится «на плаву».

ВАЖНО: имея суперправа, вы не намерено (по незнанию) можете отключить лишнее – результат: в лучшем случае сбой некоторых функций. Будьте осторожны. Успехов.