Я использую рыночное приложение Startup Manager на Android, но меня немного беспокоит, как оно работает. Эффективно ли он запускается каждый раз как демон и, таким образом, предотвращает запуск приложений, или он просто меняет загрузочный флаг в приложениях, не работая в фоновом режиме?
Все очень сильно зависит от используемого «менеджера запуска» и от того, рутировано ли ваше устройство. Как предполагает ответ dotVezz , некоторые просто деактивируют соответствующие «слушатели» (приложения могут получать уведомления о событиях и, таким образом, начинать работу, когда они появляются — самое известное событие; boot_completed
но есть и многие другие, такие как изменение сети, SDCard установлен, батарея разряжена... Если вас интересуют подробности, см., например, В чем разница между сервисом и широковещательным приемником? ). Однако для этого требуются «корневые полномочия».
Таким образом, «менеджеры запуска», работающие без «корневых прав», в основном не делают ничего, кроме диспетчеров задач: убивают приложение после его запуска по заданному событию. Они также в большинстве случаев придерживаются события boot_completed
и не заботятся о других.
Тогда есть те менеджеры, которые поддерживают оба мода. Лучшим из них, скорее всего, является AutoRun Manager , мой любимый, которым я пользовался довольно долгое время.
Теперь ваш вопрос конкретно о Startup Manager . Как вы можете видеть в описании своего приложения, и как я написал выше, это приложение просто заботится о событии boot_completed
: оно отключает/включает элементы автозагрузки из системной загрузки . Его разрешения не включают SUPERUSER
(он же root), поэтому он не может изменять получателей/слушателей. Так что, скорее всего, он просто «убивает» приложения при их запуске. Доказательство этого вы снова можете найти в описании приложения: Примечание: для Android 2.2 и более поздних ОС устройств без рута некоторые процессы перезапускаются сразу после отключения. Они бы не стали этого делать, если бы были действительно инвалидами . Но многие приложения делают это, когда их убивают .
AutoRun Manager , о котором я упоминал ранее, поддерживает оба режима: если он используется в «базовом режиме» (который не требует рута), он убивает настроенные приложения при запуске. В «расширенном режиме» (требуется root) он «заглушает» своих слушателей, поэтому они никогда не получают широковещательную рассылку событий и, следовательно, не запускаются автоматически.
Некоторые исследования показывают , что это, скорее всего, делается путем отзыва разрешений для указанных вами приложений. В частности, приложение необходимо android.permission.RECEIVE_BOOT_COMPLETED
для запуска при запуске.
Однако, хотя это наиболее вероятная ситуация, я не могу говорить о точных функциях Startup Manager .
Кроме того, если вы обеспокоены тем, что описание приложения не дает четкого представления о том, как оно работает, вы можете в качестве альтернативы использовать Autostarts , вспомогательный инструмент запуска Android с открытым исходным кодом, который контролирует, какие намерения на самом деле отправляются в какие приложения.
Иззи
полиглот
точкаВезз
полиглот
точкаВезз
android.permission.RECEIVE_BOOT_COMPLETED
приложения или даже каким-то образом модифицирует приложение.