Logo ru.androidermagazine.com
Logo ru.androidermagazine.com

Точная настройка настроек minfree (улучшение многозадачности Android)

Оглавление:

Anonim

Привет ребят! Джерри вернулся с еще одним аккуратным трюком, который вы можете сделать на своем телефоне Android. Этот помогает поддерживать бесперебойную работу и дает нам некоторый пользовательский контроль над внутренним убийцей задач Android. Как и большинство вещей, которые влияют на низкоуровневую работу Android, этот требует рута, но это хорошее чтение даже для тех людей, которые не чувствуют необходимости рутировать (и нарушать вашу гарантию!), Потому что вы просто можете лучше понять о том, что происходит за кулисами. Откройте пару дополнительных вкладок в своем браузере, подготовьте свой телефон (и, возможно, даже USB-кабель) и следите за перерывом.

Да, и предупреждение: это довольно низкоуровневые вещи. Это не сложно сделать, но то, что он делает, немного продвинуто. Не говори, что мы тебя не предупреждали.

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

Как работает убийца низкой памяти

Когда ваш телефон загружается, файл внутри загрузочного образа (init.rc) устанавливает системные параметры. Такие вещи, как путь к файлам фреймворка, настройка ваших сетей и установка пределов, при которых программы удаляются из свободной ОЗУ, выполняются этим файлом. Теперь супер-Android-гик может копаться в файле init.rc и полностью настраивать убийцу с низким объемом памяти, но вам не нужно делать это, чтобы получить хорошие результаты. Init.rc устанавливает шесть различных «уровней» открытых приложений. Давайте посмотрим на них:

  • FOREGROUND_APP: это приложение в данный момент на экране и работает
  • VISIBLE_APP: это приложение, которое открыто и работает в фоновом режиме, потому что оно еще что-то делает
  • SECONDARY_SERVER: это процесс (служба, которая нужна приложению), которая жива и готова на случай, если нужно что-то сделать
  • HIDDEN_APP: Это снова процесс, который бездействует (но все еще жив) на тот случай, если он необходим приложению, которое живо и работает

По большей части, мы никогда не хотим корректировать, когда эти приложения и процессы убиваются. Это те вещи, которые программы, которые мы используем, должны правильно функционировать. Для более смелых и опытных пользователей изменение настроек для параметров HIDDEN_APP возможно, хотя и с ОЧЕНЬ большим количеством проб и ошибок. Есть еще две настройки, и они являются наиболее интересными для нас сегодня:

  • CONTENT_PROVIDER: это приложения, которые предоставляют данные (контент) в систему. HTC Facebook Sync? Это CONTENT_PROVIDER. Такие вещи, как Android Market или Fring. Если они живы, они могут обновлять и предоставлять контент, который они должны делать через заданный интервал. Если вы убьете их, они, конечно, не смогут.
  • EMPTY_APP: я называю этих "призраков". Это приложения, которые вы открыли, но сделали с ними. Android использует уникальный стиль управления памятью. Когда действие прекращается, вместо того, чтобы убивать его, Android сохраняет приложение в памяти, так что повторное их открытие - более быстрый процесс. Эти «призрачные» приложения не используют время работы от батареи или процессора, они просто заполняют оперативную память, которая в противном случае была бы пустой. Когда эта память требуется другому приложению или процессу, ОЗУ сбрасывается и становится доступной для нового приложения. Чтобы удовлетворить людей-гиков (таких как я), Android делает это, сохраняя список недавно использованных приложений, причем самые старые приложения в списке имеют самый низкий приоритет - они уничтожаются первыми, если в других местах требуется ОЗУ. Это идеальный способ обработки «призрачных» процессов, поэтому нет необходимости трогать эту часть;)

На уровне EMTY_APP мы можем сыграть в Робин Гуда и получить некоторую производительность пользовательского интерфейса. Мы грабим богатых (оперативная память, используемая приложениями, которые мы уже использовали) и отдаем бедным (наш пул свободной оперативной памяти). Таким образом, мы решаем, когда Android закрывает старые, неиспользуемые приложения, а не позволяет системе решать за нас. Вещи, как это, почему мы болеем.

Как мы манипулируем всем этим?

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

Шаг первый - удалите любой менеджер задач, который у вас работает. Они будут только мешать тому, что мы делаем сегодня. Если вы этого не сделаете, мы все покажем и посмеемся, пока наши телефоны работают нормально:)

Шаг второй - скачать и установить MinFreeManager

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

Выберите «Агрессивный». Нет смысла устанавливать и запускать подобное приложение, не запуская его в полную силу. Если через день или два вы думаете, что у вас возникают проблемы с запуском при этих настройках, вы можете попробовать «умеренное» или настроить числа вручную. Затем нажмите «Применить», чтобы установить параметры. Если вы хотите, чтобы настройки применялись при каждой перезагрузке, меню >> apply при загрузке позаботится о вас. Для большинства это все. Наслаждайтесь наличием 75-100 МБ свободной оперативной памяти все время.

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

Обратите внимание, что ничего не стирается из ОЗУ, пока объем свободной ОЗУ не достигнет 32 МБ. (Если вы слушали меня, пока я стоял на мыльной ящике, вы знаете, что, по моему мнению, SenseUI не очень хорошо работает с менее чем ~ 40 МБ свободной оперативной памяти). При 32 МБ или менее свободной система будет начать убивать «призраков». Мы можем продвинуться вверх по списку и увидеть, что если мы когда-нибудь освободимся до 14 МБ или менее, система может (и будет) убивать приложение, которое вы запускаете на переднем плане.

Если вы решили поиграть с этими числами, будьте очень осторожны с четырьмя верхними числами. Обезьяны с этим могут сделать вещи очень нестабильными и очень уродливыми. Контент-провайдер (прочитайте его снова выше) менее раздражителен, но его слишком высокое значение сделает такие вещи, как синхронизация Facebook, еще более странными, чем сейчас. Пустой раздел приложения является бесплатным для всех. Если для этого параметра установлено значение меньше 96 МБ (IMO), это отрицательно сказывается на использовании такого приложения. Настроить вещи, дать ему пару часов, чтобы поселиться и решить, нужно ли ему больше настроек.

LowMemKiller Geek Edition

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

Чтобы проверить текущие параметры для настройки MinFree:

су

cat / sys / module / lowmemorykiller / параметры / minfree

Это вернет строку чисел, что-то вроде этого:

1536, 2048, 4096, 5120, 5632, 6144

Эти цифры являются страницами. Для Android страница равна 4 кб. Таким образом, в приведенном выше примере настройки EMPTY_APP (последняя в списке - 6144) составляет 24 МБ. 6144 страницы = 24576 КБ = 24 МБ. Формула будет:

Следовательно, значение 25000 будет равно ~ 97 МБ (сказано, что это Geek Edition!).

Для хорошей отправной точки и примера того, как изменить числа, попробуйте это:

су

echo "1536, 2048, 4096, 5120, 15360, 23040"> / sys / module / lowmemorykiller / параметры / minfree

Это настраивает так, чтобы всякий раз, когда объем свободной оперативной памяти опускался ниже 90 МБ, «призраки» убивались по порядку, а если объем оперативной памяти опускался ниже 60 МБ, CONTENT_PROVIDERS убивался. Все остальное не нарушено ядром.

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

Если у вас есть набор чисел, который вам подходит, легко упростить процесс его применения при перезагрузке. Да, эти изменения исчезают при каждой перезагрузке, поскольку они хранятся на виртуальном диске (Ramdisk), который стирается при выключении телефона. Вам понадобится текстовый редактор, который может сохранять файлы в формате, читаемом Unix. Ничто, сделанное Microsoft, не будет работать. Я всегда рекомендую Notepad ++ пользователям Windows, которым необходимо редактировать файлы Unix. Возьмите его и установите.

Откройте пустой файл и вставьте в него следующее:

echo "1536, 2048, 4096, 5120, 15360, 23040"> / sys / module / lowmemorykiller / параметры / minfree

конечно, измените настройки по умолчанию на желаемые настройки. Сохраните файл как Freeram без расширения.

Подключите телефон к компьютеру и отправьте файл Freeram в / system / bin. Затем в командной строке:

су

CD / система / бин

CHMOD 744 Freeram

выход

выход

Теперь перезагрузите телефон, и после загрузки откройте терминал и введите:

су

FreeRAM

выход

Чтобы установить ВАШИ параметры вместо параметров Android по умолчанию. Вам нужно будет делать это при каждой перезагрузке или редактировать ее в файле init.rc, который слишком уродлив, чтобы его здесь описывать. У нас есть форум для этого.:)

Любите ли вы легкий способ или предпочитаете более жесткий способ, попробуйте. Это легко вернуть, и его 100 процентов бесплатно.

До следующего раза,

Джерри