Глядя на устройство Android KitKat производства LG, я вижу, что приложение всегдаSoftware Update
работает как служба переднего плана (100). Эта служба занимает значительный объем памяти.
Из того, что я могу сказать, это приложение предназначено только для OTA-обновлений, что является исключительно редким событием (до сих пор никогда не случалось!).
Чтобы освободить часть рабочей памяти, я подумал о том, чтобы запретить запуск приложения при загрузке (отключив его широковещательный приемник), а затем просто запускать его вручную время от времени для проверки обновлений.
Но прежде чем я это сделаю, я хочу спросить, имеет ли это вообще значение? Для приложений, которые всегда запускают службу переднего плана, будет ли Android просто выгружать их из памяти, как фоновое приложение? Или память, которую они используют, всегда полностью заблокирована, что делает мой план стоящим?
Вы сказали :
(отключив его широковещательный приемник)
Сначала позвольте мне указать, что это не одно Broadcast Receiver
и Service
то же, вы получите разницу между ними по ответу.
Широковещательные приемники:
BroadcastReceiver позволяет приложению работать в течение короткого промежутка времени в фоновом режиме в результате чего-то другого. При обработке широковещательной передачи приложению дается фиксированный набор времени (в настоящее время 10 секунд), в течение которого оно должно выполнять свою работу. Если оно не завершится за это время, приложение будет считаться некорректно работающим, и его процесс будет немедленно переведен в фоновое состояние, чтобы при необходимости быть уничтоженным для использования памяти.
Итак, как вы можете прочитать, BroadcastReceiver не может поддерживать работу приложения в фоновом режиме более 10 секунд, что является своего рода ограничением, верно? вот почему есть услуги.
Услуги :
Служба позволяет приложению выполнять длительные фоновые операции. На самом деле есть много других функций, которые предоставляют сервисы.
Управление процессами Android для служб отличается от широковещательных приемников, поскольку неограниченное количество служб может запрашивать запуск в течение неизвестного периода времени. Оперативной памяти может не хватить для запуска всех запрашивающих служб, поэтому нет надежных гарантий их работы.
Если оперативной памяти слишком мало, процессы, на которых размещены сервисы, будут немедленно убиты, как и фоновые процессы. Однако, если это уместно, Android запомнит, что эти службы хотят продолжать работать, и перезапустит свой процесс позже, когда будет доступно больше оперативной памяти. Например, если пользователь переходит на веб-страницу, требующую большого объема оперативной памяти, Android может остановить фоновые сервисные процессы, такие как синхронизация, до тех пор, пока память браузера не уменьшится.
Службы могут дополнительно согласовать это поведение, запросив, чтобы они считались «передним планом». Это помещает службу в состояние «пожалуйста, не убивайте», но требует, чтобы она включала уведомление пользователя о том, что она активно работает, например, музыкальные проигрыватели, антивирус и т. д.
Приложение должно отображать уведомление, в вашем случае это системное приложение, ему не нужно это требование, оно может сообщить системе, что оно должно работать все время, и система не убьет его, только если системе требуется больше памяти. и это единственная служба, которая все еще работает (каковы шансы, что это произойдет).
Теперь вернемся к вашему вопросу. Будет ли это стоит того? Я думаю, это потому, что это пустая (действительно пустая) память используется и не будет освобождена без всякой цели.
Я добавлю :
ваш план остановить его широковещательный приемник может не поддерживать службу в фоновом режиме, я бы порекомендовал вам отключить приложение в разделе «Настройки»> «Приложение»> «Все» и нажать «Отключить» (если эта кнопка есть) или заморозить приложение с помощью резервного копирования титана.
Ссылка: http://android-developers.blogspot.com/2010/04/multitasking-android-way.html http://www.howtogeek.com/161225/htg-explains-how-android-manages-processes/ http ://developer.android.com/training/articles/memory.html
Рашид Буджелида
RockPaperLz - Замаскируй или Шкатулка
Рашид Буджелида