Как запускаются и работают приложения и оптимизаторы под Android?
Где-то в интернете мне попадался пост о приложениях, рекомендованных для удаления. Среди них было известное для освобождения памяти, называть не буду (хотя, ладно, “Клин мастер”, если интересно). Автор статьи писал, что приложение только провоцирует последующий медленный их запуск. Я не знаю, как понять медленный, и сколько “драгоценных” секунд (не минут же) экономится, приложение в моем понимании либо запущено, либо нет, иного промежуточного состояния я не вижу. То есть будь они все рабочими фоново, оперативной памяти не хватило бы. Да и хранилище для чего существует, чтобы оперативную память заполнять (сарказм)?
Появился и у меня телефон с Андроид. И на нем установлен какой-то оптимизатор, да не один (хотя, возможно, это один целый пакет, идущий в комплекте с лаунчером, который я установил).
Есть не один, а три ярлыка для очистки памяти (не хранилища, речь об оперативной памяти, ни о чём более):
Ярлыки
Ярлык “Ускорение” отображает в процентах количество занятой памяти, а по нажатию что-то из неё очищает. Непонятно только, что именно, потому что только что работающее офисное приложение было быстро восстановлено из недавних, даже не был утрачен текст, который я набирал. Но в результате, да, количество процентов занятой памяти меньше, чем было, то есть около 30%.
Запуск первого ярлыка
Очистку мусора пропустим...
Второй ярлык подписан “Аккумулятор”, при нажатии на него отображаются приложения, расходующие заряд. Притом, что показаны в основном те, которые я давно не запускал, а недавно работающее не показал. Применил завершение и радуюсь, но только количество в процентах не убавилось, а даже добавилось на единицу после запуска оптимизатора.
"Оптимизация" батареи
Хотя повторное сканирование приложений уже не найдет:
А они с юмором, однако.
И есть третий ярлык - “Ускорени+” (так и подписан). Нажав на него, он покажет все установленные приложения, включая только что завершённые и те, что ты долго не запускал. При нажатии на завершение, он будет завершать каждое, отображая размер каждого из них (их исходный размер, а не занятый), и сообщит, что 2 Гб было освобождено.
Глобальная зачистка. Начало
Тем не менее, количество занятой памяти снизит аж до 12%! Правда, повторное сканирование спустя время покажет снова те же приложения...
Ну, не может же быть так, что каждое приложение работало бы несколькими слоями. Или я что-то не знаю? При этом каждый оптимизатор показывает разные результаты.
Вопрос разветвляется таким образом сразу на два. Во-первых, принцип работы приложений, действительно ли работают несколькими процессами (слоями)? Во-вторых, что собой представляют эти оптимизаторы, и почему у всех результаты разные, а повторное сканирование находит снова приложения запущенными. Фоновый автозапуск?
Я андроид разработчик и хорошо знаком с деталями работы приложений.
Да, действительно - все эти "ускорители" лишь наносят вред. На самом деле они не ускоряют, а замедляют работу приложений. Зачем они тогда вообще существуют? К сожалению спрос рождает предложение. Разным устройствам (точнее производителям устройств) хочется как-то выделяться в лучшую сторону среди конкурентов. Но придумать что-то действительно полезное своими силами трудно, поэтому легче придумать что-то, что внешне выглядит как полезная вещь, а на самом деле - просто красивый фантик.
Если у вас один из новых андроидов (10 или выше), вам все эти оптимизаторы вообще не нужны. Сам андроид справляется с оптимизацией лучше них.
Действительно ли они работают разными слоями
Эти "оптимизаторы" обращают внимание на разные параметры. Один занимается одним, другой - другим.
Количество занятой памяти меньше.
Память существует для того, чтобы в ней было что-то полезное. То, что "оптимизатор" освободил память - не означает, что стало лучше. До тех пор, пока количество занятой памяти меньше чем примерно 80%, вам совершенно не о чем беспокоиться. Замедление работы начинается только тогда, когда свободной памяти недостаточно. Но в этом случае сам андроид сработает как оптимизатор и позакрывает те программы, которые считает наименее актуальными.
С памятью наоборот, оптимальная ситуация должна быть такова, что оперативная память должна быть занята на 50-80%. Это означает, что андроид хранит для вас в памяти то, что по его мнению может вам понадобиться в первую очередь.
Из-за того, что оптимизаторы удаляют данные из оперативной памяти, андроиду просто приходится тратить больше времени на чтение этих же самых данных из постоянной памяти.
Вот вы купили смартфон, у него, допустим, написано "8 гб оперативной памяти" - и вам ещё продавец хвалился "смотрите, вот тут много оперативной памяти". А зачем вам эта память, если эти горе-оптимизаторы не дают вам её заполнить? Это то же самое, как если бы у вас не было этой памяти.
А вот насчёт того, что один из оптимизаторов показывает, насколько приложение "прожорливо" в плане расхода заряда аккумулятора - это полезно. Но если в принципе вам хватает заряда, то ничего оптимизировать здесь тоже не надо. Оптимизатор, конечно, может вам предложить принудительно закрыть эти прожорливые приложения, но в большинстве случаев это означает, что вы помешаете этим приложениям делать то, что они хотят делать. Например, вам сообщения будут приходить реже и не вовремя. У новых смартфонов обычно нет проблем с зарядом, поэтому принудительно закрывать приложения ценой ухудшения их работы обычно нет смысла. Если вы очень редко пользуетесь этим приложением, андроид сам его оптимизирует - начнёт давать ему меньше ресурсов, и оно само по себе без всякого оптимизатора начнёт потреблять меньше заряда. Но если вы совсем им не пользуетесь, тогда имеет смысл его удалить.