пятница, 15 апреля 2011 г.

Приложения под Android №5. AutoKiller Memory Optimizer


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


AutoKiller Memory Optimizer


Для работы программы нужно иметь root права!

Щас будут поверхностные рассуждения. Если возникли какие-то сомнения или непонятки, более достоверную информацию советую добыть самостоятельнo :)

Все мы замечали, что как только телефон купишь или только что перепрошьёшь, всё на нем просто летает. Приложения открываются моментально, отклик интерфейса быстрый и т.п. Речь идет про наблюдения за Acer Liquid S100. Позже, когда список установленных приложений перевалит за 75-100, появляются лаги. То, что раньше открывалось и шевелилось быстро, теперь происходит с заметными задержками. Ресурсы телефона забиты. Для быстрого функционирования без задержек программам требуются различные ресурсы/характеристики телефона, в том числе и свободная оперативная память. Андроид ею манипулирует достаточно хорошо. Но не всегда. Если у вас установлен любой монитор процессов или диспетчер задач, вы увидите, что на фоне в оперативной памяти часто сидит много приложений, которые вы даже не используете. У меня, например, это Remote Desktop или Карты Google или др. Делается это для более быстрого доступа к этим приложениям, если вы вдруг захотели ими воспользоваться. 

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

Исходя из того же внутреннего рейтинга, когда Android видит, что оперативная память начинает заканчиваться, чтобы вообще не лишится рабочего ресурса, он висящие в памяти процессы убивает автоматически. По умолчанию, процессы, например, с тегом empty (которые в данный момент ничего не делают) он начнет убивать, если оставшейся свободной оперативной памяти станет меньше 24 Мб. Итого, когда в вашей системе установлено много приложений, у вас в среднем будет свободно около 20Мб оперативной памяти, чего часто, в совокупности с мощностью нашего процессора и др. характеристиками аппарата, не хватит для гладкого и быстрого запуска даже Android Market. Проблема эта не стоит так остро на нынешних флагманах, у которых оперативной памяти 512Мб, 758Мб или еще больше. На S100 у нас всего 256Мб, а на деле Quick System Info, например, видит доступными для использования только 185Мб.

В принципе, помогают Тask киллеры, коих расплодилось достаточно много. Некоторые из них настолько "жесткие", что часто без дополнительной настройки грохают все. В том числе и нужные вещи, как-то: виджеты всякие (часы, например) или нужные вам клиенты, которые вы используете именно в фоновом режиме. Другие же "мягкотелые" не завершают практически ничего и поэтому нужного результата не дают. В любом случае, этот результат все равно будет временным. Ведь через некоторое время система увидит свободный ресурс оперативной памяти, сверится со своими рейтингами и напихает в фон "самые востребованные" вещи, которые вы на самом деле используете раз в месяц. Есть и более продвинутые таск киллеры, которые делают чистку от мусора с промежутками по времени, но не факт, что вы начнете использовать аппарат в "удачный" момент, когда оперативка еще свободна. Также эти таск киллеры, работая на фоне, опять же являются дополнительным расходом батареи, ресурсов и т.п.

Вот тут мы и пришли к потребности в приложениях типа AutoKiller Memory Optimizer. Оно меняет настройки автоматического убийцы задач самой системы Android. Процессы делятся по 6 критериям: 
  • foreground ("на переднем плане" - приложения, с которыми идет работа в данный момент, их нам убивать, естественно, не нужно);
  • visible ("видимые" - отвечают за процессы "видимые" для пользователя, их нам тоже желательно не трогать);
  • secondary server ("вторичный сервер" - их убийство не даст большого результата и для нормальной работы мы, опять же, не заинтересованы в их завершении);
  • hidden ("скрытые" - отвечают за процессы, которые не касаются в данный момент работы пользвателя, вот их уже можно убивать);
  • content provider ("провайдер", к содержанию которого сейчас ничего не обращается. Если он используется, то рейтинг у него был один из четырех вышеназванных, поэтому его тоже можно мочить);
  • empty ("пустое" - процесс, в котором ничего не происходит на данный момент. От этих желательно бы избавиться в первую очередь).

По умолчанию, настройки в ОС Android для этих шести критериев следующие: 6/8/16/20/22/24 Мб. Как я уже писал, это означает, что если оперативной памяти станет меньше 24Мб, то Андроид начнет убивать процессы с критерием  empty. Посмотреть эти настройки на своем телефоне можно, например, с помощью утилиты Quick System Info: Закладка Основная информация - Память - Найстройки Low Memory Killer.

Как мы видим, настройки, относящиеся к первым трем критериям, лучше вообще не трогать. Экспериментировать нам приложение предлагает с настройками трёх последних критериев. В моем случае предустановленный режим Moderate (6/8/16/30/35/40) уже дал ощутимый результат. Теперь Андроид держит свободной всегда прядка 35-40 Мб. Для большинства моих приложений этого уже достаточно для гладкой работы телефона. Рабочий стол вновь не лагует, приложения запускаются быстро и плавно. Сейчас в целях эксперимента перешел на Optimum (6/8/16/40/50/60). Пока при использовании аппарата особых отличий от режима Moderate не заметил. Так что теперь наслаждаюсь вновь быстрым откликом интерфейса, как на "свеженьком" телефоне. Этот режим является самым распространенным по статистике на сайте разработчика программы для Acer Liquid S100. 

Какие настройки в вашем случае окажутся лучше всего зависит от того, как вы используете телефон, его характеристик, установленных приложений и т.д. Поэтому пробовать можно начинать перебором с самых низких предустановленных режимов до тех пор, пока изменения в скорости работы аппарата станут незаметными. Если же вы и так не испытывали никаких задержек, то логично, что вам это приложение не требуется. Так же не советуют использовать слишком агрессивные значения, иначе начнут завершаться всякие нужные процессы(виджеты, IM клиенты, и т.п.) Помним, что на S100 всего 185Мб доступной для использования оперативной памяти (если у вас другой телефон, в вашем случае, естественно, будет другое значение). Поэтому не надо подходить близко к этой цифре, если хотите, чтобы функциональность аппарата осталась нормальной. 

Сделанные приложением изменения остаются в самой системе, поэтому она не висит в процессах и не использует никаких ресурсов. У меня, кстати, предустановленный режим с названием System default почему-то делает 6/8/16/20/40/48, что отличается от теоретических стандартных для андроида 6/8/16/20/22/24. Возможно, это связано с моей прошивкой t&l на данный момент, но советую перед использованием программы запомнить свои исходные установки, чтобы если чего вдруг, вы могли вернуть начальное состояние.

Программа содержит много других настроек, которые по умолчанию отключены и которые не советую использовать, если не уверены в том, что они делают. Режим чака норриса, например, будет использовать системный kill, это может повредить работе ОС. Однако, если вам не нужен расход gprs трафика, выключите Разрешение сбора автоматической анонимной статистики.

Подробнее обо всем этом - и про дополнительные возможности программы, и про статистику использования настроек на разных моделях Android смартфонов - можно прочитать на сайте разработчика: http://andrs.w3pla.net/autokiller

Комментариев нет: