Как почистить Android-телефон для увеличения скорости. Как ускорить свой Android: подробные инструкции настройки телефона на оптимальную работу

20.10.2019

Хотите ускорить Андроид? Надоели тормоза и долгий отклик приложений? Прежде чем вы решитесь на покупку нового смартфона, сначала стоит попробовать немного ускорить ваш Андроид.

Давайте попробуем некоторые способы и ускорим наше устройство — включая общую чистку, удаление приложений, и несколько классных трюков и хаков.

Обновите прошивку на Андроид

Первое что нужно сделать, это убедиться, что на вашем устройстве стоит последняя версия прошивки. Время от времени выходит новая версия Андроид, лаунчера и патчи исправляющие ошибки. Любое из перечисленного может помочь ускорить работу Андроид.

Чтобы узнать нуждается ли ваш телефон в обновлении, войдите в «Настройки» -> «О телефоне» -> «Обновление системы» .

Стоит систематически проверять обновление приложений — особенно таких, как эмуляторы. Это же касается и сервисов Google Play, поскольку они контролируют почти все на вашем телефоне.

Установка кастомной прошивки на Андроид

Если для вашего смартфона долго нет обновлений, можно попробовать решить проблему установкой кастомной прошивки .

Обычно в такой прошивке установлены моды созданные сообществом, что увеличивает производительность или добавляет новые функции. Еще кастомная прошивка может обновить ваше устройство до последней версии Андроид, даже если ваше устройство не поддерживается официально.

При этом появляется неотъемлемый риск. Вам нужно будет , который может убить ваше устройство. Некоторые приложения (например, банковские — Сбербанк) не будет работать. У устройства может пропасть гарантия. Впрочем, если вы уверены в своих технических навыках или у вас старое устройство, этот способ даст новую жизнь старому гаджету и действительно ускорит его.

Уберись на рабочем столе Андроид

Все время от времени убираются у себя в доме. То же самое относится и к вашему Андроид устройству. Если у вас на рабочем столе стоят , виджеты показывающие вам новости, погоду, соцсети. Вы можете заметить не большое подтормаживание при переходе между столами. Если у вас включена визуализации вроде Bixdy, подумайте об ее отключении .

Если вы не ходите или боитесь в ручную чистить кеш, может воспользоваться специальным приложением, например CCleaner.

Отключить автосинхронизацию Андроид

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

Виновником этого обычно является синхронизация приложений. Найдите в «Настройках» своего телефона пункт «Учетные записи» или «Синхронизация» , зайдите в него и увидите, что функция «Автоматическая синхронизация данных» включена. Выберите приложение, в котором вы хотите отключить или изменить настройки.

Ответьте себе на вопрос, нужно ли, чтобы приложение синхронизировалось каждые полчаса или будет достаточно одной синхронизации в сутки.

Фоновые процессы в Андроид

Рассмотрите возможность отключения и удаления ненужных фоновых процессов. Фоновые процессы — это приложения, постоянно работающие в фоновом режиме. Например, приложение «Сообщения», постоянно работающие в фоновом режиме, чтобы получать сообщения. Но иногда в фоне работаю приложения, которыми вы практически не пользуетесь, а они в это время нагружают процессор.

Если вы вышли, то опять вернитесь в раздел «Для разработчиков» и найдите «Фоновые процессы». Здесь вы увидите, какие приложение работают в фоновом режиме. Отключите те, которые вам не нужны, и телефон немного станет работать быстрей. Также это хорошо скажется на длительности работы батареи.

Избегайте приложений для оптимизации на Андроид

Устройства Андроид очень эффективно управляют своей памятью — часто бывают, что после закрытия приложения продолжают работать. Запуск нового приложения занимает больше времени и увеличивает нагрузку на батарею, чем то, которое уже было запущенно и просто закрыто. Когда вы открываете приложение, а ему не хватает памяти, Андроид автоматически закрывает менее важные, чтобы освободить место.

Приложение для автоматического закрытия приложений, на самом деле замедляют ваше устройство и «жрут» заряд батареи.

По этой причине использование «оптимизаторов», фактически замедляет работу вашего устройства, а не ускоряют его. Если вы заметили, что они вам в прошлом помогали, предполагаю, что одно или несколько приложений плохо оптимизировано разработчиками. Лучший способ найти виновников и попробуйте заменить их нормальными или удалить.

То же самое касается кэшированию данных — чистить кэш время от времени, но не злоупотребляйте этим!

Разгон Андроид

Если вам нужно ускорить скорости игры, разгон будет правильным решением.

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

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

Естественно, не забудьте проверить меню настроек самих игр! Снижение настроек графики часто может увеличить плавность игр и срок работы аккумулятора.

Удалить все начисто

Если ничего не помогает, и вы чувствуете, что ваш телефон стал, сильно тормозит, один из последних способов — простой сброс до заводских настроек. Это удалит все файлы и настройки, тормозящие скорость работы вашего смартфона, и я надеюсь, ваш телефон снова будет работать как новый.

После сброса просто используйте все трюки, которые я перечислил на чистом телефоне, и вы сможете получить смартфон с максимальной производительностью.

Я, что-то пропустил?

Если я пропустил один или два способа ускорения телефона на Андроид, обязательно расскажите о них в комментариях ниже, а мои читатели будут вам очень признательны! Удачи!

Смартфоны на базе Android, как и любые другие технические устройства, со временем начинают тормозить. Связано это как с длительным периодом их использования, так и с потерей актуальности технических характеристик. Ведь со временем приложения становятся более продвинутыми, а вот «железо» остается прежним. Однако не стоит сразу же покупать новый гаджет, тем более далеко не всем это по карману. Существует большое количество способов увеличения быстродействия смартфона, о которых и пойдет речь в данной статье.

Как говорилось ранее, существует немалое количество методов ускорения работы вашего девайса. Можно выполнить их как выборочно, так и все вместе, но каждый привнесет свою долю в улучшение смартфона.

Способ 1: Очистка смартфона

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

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

Способ 2: Отключение геолокации

Служба GPS, позволяющая определять местоположение, реализована практически в каждом современном смартфоне. Но далеко не все пользователи нуждаются в ней, в то время как она запущена и отбирает ценные ресурсы. Если вы не пользуетесь геолокацией, то лучше всего отключить ее.

Существует два основных способа отключения службы местоположения:

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

Способ 3: Отключение энергосбережения

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

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

При излишне замедленной работе смартфона рекомендуем не пренебрегать данным способом, поскольку он может отлично помочь.

Способ 4: Отключение анимации

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

  1. Первым делом необходимо активировать данные привилегии, если это не было сделано. Попытайтесь найти пункт меню «Для разработчиков» .

    Если в ваших настройках такого пункта нет, то необходимо его активировать. Для этого перейдите в меню «О телефоне» , которое, как правило, располагается в самом конце настроек.

  2. В открывшемся окне найдите пункт «Номер сборки» . Постоянно нажимайте на него до тех пор, пока не появится характерная надпись. В нашем случае это «Не нужно, вы уже разработчик», но у вас должен появиться другой текст, подтверждающий активацию режима разработчика.
  3. После этой процедуры меню «Для разработчика» должно появиться в ваших настройках. Перейдя в данный раздел, необходимо включить его. Для этого активируйте ползунок в верхней части экрана.

    Будьте осторожны! Крайне внимательно следите за тем, какие параметры вы изменяете в этом меню, ведь существует вероятность навредить своему смартфону.

  4. Найдите в данном разделе пункты «Анимация окон» , «Анимация переходов» , «Длительность анимации» .
  5. Зайдите в каждый из них и выберите пункт «Отключить анимацию» . Теперь все переходы в вашем смартфоне будут происходить гораздо быстрее.
  6. Следующим шагом необходимо найти пункт «GPU-ускорение» и включить его.
  7. После выполнения этих действий вы сразу заметите существенное ускорение всех процессов в вашем мобильном устройстве.

Способ 5: Включение компилятора ART

Очередной манипуляцией, которая позволит ускорить быстродействие смартфона, является выбор среды выполнения. В данный момент в девайсах на базе Андроид доступны два вида компиляции: Dalvik и ART. По умолчанию на всех смартфонах установлен первый вариант. В расширенных же возможностях доступен переход на ART.

В отличие от Dalvik, ART выполняет компиляцию всех файлов при установке приложения и больше не обращается к данному процессу. Стандартный же компилятор делает это при каждом запуске программ. В этом и заключается преимущество ART перед Dalvik.

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

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

Очистка рабочего стола

Наши советы должны помочь обладателям достаточно старых аппаратов. Ведь именно такие устройства подтормаживают сильнее всего. В первую очередь это может происходить из-за нехватки оперативной памяти. Это сейчас в смартфоны встраивается 2 Гб оперативки. В старых аппаратах её установлено гораздо меньше. А расходуют оперативную память сильнее всего виджеты. На рабочем столе вы находитесь очень часто, каждый раз отображаемые виджеты отнимают тот или иной объем оперативной памяти.

Стало быть, нужно избавиться от необязательных виджетов. Оставьте только те, которые вам требуются очень сильно. А ещё не помешает удалить живые обои, если вы таковые используете. Они не просто потребляют ресурсы, но и сильно сказываются на продолжительности автономной работы. Поставьте вместо них какую-нибудь статическую картинку. Вы сразу заметите, что смартфон станет держаться от одного заряда гораздо дольше.

Отключение прожорливых приложений

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

Выключение GPS

Иногда подтормаживать смартфон заставляет GPS-модуль. Такой вывод можно сделать тогда, когда аппарат задумывается перед отправкой разработчикам какого-либо приложения информации о вашем местоположении. В таком случае отключите GPS. Пусть смартфон определяет примерные географические координаты по сотовым вышкам и сетям Wi-Fi.

Выключить GPS-модуль можно при помощи виджета. Или через соответствующий раздел в настройках. Включайте GPS только при использовании навигационных приложений.

Установка специализированной утилиты

Постепенно на любом смартфоне скапливается различный мусор. Это всяческие файлы от уже удаленных приложений и прочие неиспользуемые данные. Удалить подобный мусор средствами Android практически невозможно. Но на это способны специализированные утилиты. Например, хорошо себя показывает Clean Master.

Данное приложение способно устранить файлы, считающиеся ненужными. Сканирование устройства совершается за несколько секунд. Затем пользователь имеет право вмешаться в процесс, оставив те или иные данные.

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

Аппаратный сброс

Если ускорить быстродействие смартфона не получается, то можно попробовать произвести аппаратный сброс. Это точно поможет очистить от мусора старый аппарат. Но необходимо понимать, что пути назад у вас не будет. Аппаратный сброс удалит все приложения. Вам придется затем всё загружать заново. Мероприятие - не самое приятное. Поэтому рекомендуется перед аппаратным сбросом произвести резервное копирование, а также вынуть карту памяти.

Аппаратный сброс выполняется путем нажатия определенной комбинации кнопок. Но при стабильно работающем устройстве легче воспользоваться путём "Настройки>SD и память телефона>Сброс настроек". На старых версиях операционной системы нужно искать отдельный раздел, предназначенный для этого действия. Не забывайте, что после сброса вам вновь будет нужно ввести данные от своего аккаунта в Google. Поэтому не поленитесь предварительно вспомнить логин и пароль.

Большинство жителей современного мира пользуются смартфонами на базе операционной системы Android. На протяжении нескольких последних лет, эта операционная система овладела сердцами десятков миллионов пользователей по всему миру, обогнав по популярности все другие конкурирующие платформы. На данный момент, Android-смартфоны широко распространены по всей планете, причём их популярность постоянно возрастает.
Со временем, скорость работы данных гаджетов заметно снижается, и все они начинают «тормозить». Чтобы избавится от разных нежелательных «глюков» и повысить работоспособность своей операционной системы вам нужно выполнить следующие операции:
1. Обновить прошивку телефона.
В новых, обновлённых прошивках автоматически исправляются все лаги, ошибки и прочие проблемы, о которых вы даже и не знали. Подобные нежелательные проблемы появляются очень часто, поэтому вы должны регулярно обновлять прошивку своего смартфона, чтобы обеспечить ему высокую работоспособность, производительность и быстродействие.
2. :
После восстановления заводских настроек, ваш аппарат возвратится в первоначальное состояние, и он будет выглядеть как новый. Этот шаг поможет избавиться от всех нежелательных «глюков» только на короткое время, потому что со временем, смартфон опять начнёт «тормозить» как и раньше.
Перед восстановлением заводских настроек вам нужно всех контактов, заметок и прочих необходимых вам данных.
3. Проверить количество доступной встроенной памяти:
Малый – один из самых главных факторов, который приводит к возникновению разных лагов, ошибок и прочих нежелательных проблем. Для того чтобы увеличить объём свободной встроенной памяти вам нужно переместить все свои медиа-файлы (фото, музыка, видео и т.д.) на внешнее хранилище, как правило, на SD-карту.
Важно отметить, что некоторые устройства, которые размещаются в низком или среднем ценовом сегменте, обладают сравнительно небольшим объёмом внутренней памяти, поэтому в таком случае, перемещение всех файлов на внешнее хранилище практически не поможет.
4. Поискать полезные приложения на Play Market:
Ниже вы можете посмотреть список , которые помогут ускорить работу вашего смартфона и избавят его от всех ошибок, лагов или прочих проблем.
- Auto task killer – это приложение подойдёт для смартфонов с более старыми версиями Google Android. Данное приложение автоматически закрывает выбранные приложения через каждые несколько секунд или минут. Этот процесс позволяет освободить некоторое количество оперативной памяти, что значительно повысит скорость работы вашего аппарата.
- Хороший антивирус: приложение сканирует ваш смартфон на наличие вирусов и разных вредоносных приложений, которые, зачастую снижают скорость работы устройства.
- Менеджер автозагрузки: приложение позволяет отключить автоматическую загрузку некоторых приложений при включении смартфона.
- Juice defender: приложение останавливает некоторые сервисы и приложения, тем самым увеличивая продолжительность работы аккумулятора.
- Очиститель кэша: приложение очищает весь ненужный кэш в памяти смартфона.

Блуждая по форумам и разного рода сайтам, посвященным Android, мы постоянно сталкиваемся с советами, как увеличить производительность смартфона. Одни рекомендуют включить swap, другие - добавить специальные значения в build.prop, третьи - изменить переменные ядра Linux. Подобного рода рецептов в разных вариантах можно найти огромное количество, что на XDA, что на 4PDA. Но работают ли они на самом деле?

Введение

Пользуясь самыми разными *nix-системами на протяжении последних десяти лет, я всегда удивлялся, с каким упорством некоторые, казалось бы, грамотные пользователи смартфонов пытаются впихнуть общественности свои идеи оптимальной настройки Android и лежащего в его основе ядра Linux. И ладно бы дело ограничивалось легким тюнингом подсистемы управления виртуальной памятью или включением экспериментальных опций. Нет, обычно нам предлагают применить длиннющие скрипты, изменяющие буквально каждую переменную ядра, перемонтирующие файловые системы с разными странными опциями, включающие swap, активирующие различные системные демоны и выполняющие еще миллиарды различных операций.

Нет, ну можно, конечно, предположить, что ядро Linux, Android и фирменные прошивки для смартфонов разрабатывают безграмотные идиоты, работу которых необходимо кардинальным образом переделывать, но на практике почему-то оказывается, что самые известные инструменты тюнинга, опубликованные на XDA, - это не что иное, как сборная солянка из огромного количества разрозненных рекомендаций, придуманных непонятно кем и неизвестно зачем. Абсурд ситуации доходит того, что в этих инструментах можно обнаружить строки, без изменений скопированные из скриптов для увеличения производительности Linux-сервера в условиях высоких нагрузок (я не шучу, взгляни на содержимое известного скрипта ThunderBolt!).

В целом ситуация более чем запутанная. Все советуют всё, никто не советует ничего, а те, кто что-то понимает, сидят и, попивая чай, смеются над происходящим балаганом. Но попробуем все-таки разгрести всю эту кашу.

Swap

Начнем со swap - самой абсурдной идеи из всех, что только можно придумать для применения в смартфонах. Ее смысл в том, чтобы создать и подключить файл подкачки, за счет чего удастся освободить полезное пространство в оперативной памяти. Сама по себе идея, конечно, здравая, но только если речь идет о сервере, которому интерактивность никуда не упирается. На смартфоне регулярно используемый файл подкачки приведет к неиллюзорным лагам, возникающим вследствие промахов мимо кеша, - достаточно представить, что будет, если приложение попытается отобразить одну из своих пиктограмм, а она окажется в свопе, который придется вновь загружать с диска, предварительно освободив место путем помещения в своп данных другого приложения. Ужас.

Некоторые юзеры могут возразить, что на самом деле после включения swap никаких проблем не возникает, но за это надо благодарить механизм lowmemorykiller, который регулярно убивает особо раздувшиеся и давно не используемые приложения. Благодаря ему девайс с 1 Гб памяти может никогда и не дойти до необходимости сброса данных в своп. Он же и является причиной того, почему в отличие от Linux-десктопа в Android своп не нужен.

Вердикт: очень глупая идея, реализация которой чревата серьезными лагами.

zRAM

Swap действительно очень медленный, и даже на десктопе его существование зачастую неоправданно, но что, если обмануть систему? Создадим виртуальный диск прямо в оперативке с встроенной функцией сжатия данных, подключим его как swap - и вуаля. Функция сжатия данных довольно дешева даже для современных мобильных процессоров, поэтому мы сможем расширить размер оперативки практически без потерь производительности.

Идея настолько правильная, что даже Google рекомендует применять zRAM для основанных на KitKat устройствах в том случае, если объем оперативки не превышает 512 Мб. Загвоздка только в том, что способ работает лишь для современных бюджетников, то есть устройств, основанных на многоядерных бюджетных процах от какой-нибудь MTK и 512 Мб оперативки. В этом случае поток шифрования можно вынести на отдельное ядро и вообще не париться о производительности.

На устаревших устройствах с одним ядром, для которых «гуру форумов» и рекомендуют применение данной технологии, мы вновь получим лаги, причем в довольно большом количестве. То же, кстати, относится и к технологии KSM (Kernel SamePage Merging), которая позволяет объединять одинаковые страницы памяти, освобождая таким образом пространство. Она также рекомендована Google, но на старых девайсах приводит к еще большим лагам, что вполне логично, учитывая постоянно активный ядерный поток, который непрерывно ходит по памяти в поисках дубликатов страниц (а так ли много этих дубликатов на самом деле?).

Вердикт: зависит от устройства, в большинстве случаев замедляет систему.

Seeder

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

Если вкратце, то баг состоял в том, что некоторые высокоуровневые компоненты среды исполнения Android активно использовали файл /dev/random для получения энтропии/соли. В какие-то моменты буфер /dev/random опустошался, и система оказывалась заблокирована до момента его заполнения необходимым количеством данных. А так как заполнялся он тем, что поступало с разных датчиков, кнопок и сенсоров смартфона, то времени на эту процедуру уходило столько, что пользователь успевал заметить лаг.

Для решения этой проблемы автор Seeder взял Linux-демон rngd, скомпилировал его для Android и настроил так, чтобы он брал случайные данные из гораздо более быстрого (но и намного более предсказуемого) /dev/urandom и каждую секунду сливал их в /dev/random, не позволяя последнему истощиться. Как результат - система никогда не испытывала недостатка в энтропии и спокойно работала.

Данный баг был закрыт Google еще в Android 3.0, и, казалось бы, нам незачем вспоминать о Seeder. Но дело в том, что приложение с тех пор активно развивалось и даже сегодня рекомендуется многими «экспертами» для применения. Более того, у приложения появилось несколько аналогов (например, sEFix), а многие создатели скриптов/инструментов для ускорения до сих пор включают подобную функциональность в свои творения. Иногда это тот же самый rngd, иногда - демон haveged, иногда просто симлинк /dev/urandom на /dev/random.

Все, кто пробовал, наперебой кричат об эффективности решения, однако, если верить Рикарду Серкейре (Ricardo Cerqueira) из компании Cyanogen, в современных версиях Android /dev/random используется всего тремя компонентами: libcrypto (для шифрования SSL-соединений, генерации ключей SSH и так далее), wpa_supplicant/hostapd (для генерации WEP/WPA-ключей) и несколькими библиотеками для генерации случайных ID при создании файловых систем ext2/3/4.

Эффективность приложения в современном Android, по его мнению, связана вовсе не с пополнением пула /dev/random, а с тем, что rngd постоянно пробуждает устройство и заставляет его повышать частоту процессора, что позитивно сказывается на производительности и негативно на батарее.

Вердикт: плацебо.

Odex

Стоковые прошивки смартфонов всегда одексированы. Это значит, что наряду со стандартными для Android пакетами приложений в формате APK в каталогах /system/app/ и /system/priv-app/ (начиная с KitKat) также находятся одноименные файлы с расширением odex. Они содержат так называемый оптимизированный байт-код приложения, уже прошедший через верификатор и оптимизатор виртуальной машины и записанный в обособленный файл (это делается с помощью утилиты dexopt).

Смысл существования файлов odex в том, чтобы разгрузить виртуальную машину и таким образом ускорить запуск приложений (стоковых). С другой стороны, файлы odex мешают вносить в прошивку модификации, создают проблемы с обновлением, и по этой причине многие кастомные ROM’ы (включая CyanogenMod) распространяются без них. Вернуть (точнее, сгенерировать) файлы odex можно разными способами, в том числе с помощью простых утилит/скриптов вроде Odexer Tool. Пользоваться ими легко, и многие «эксперты» советуют это делать.

Проблема только в том, что это чистейшее плацебо. Не обнаружив odex-файлов в каталоге /system, система сама создаст их при следующей загрузке и поместит в каталог /system/dalvik-cache/. Именно этим она занимается, когда при загрузке новой прошивки на экране появляется сообщение «Идет оптимизация приложений…». В отношении приложений из маркета это тоже, кстати, работает. Но на этапе установки софта.

Вердикт: плацебо.

Твики lowmemorykiller

Реализация многозадачности в Android сильно отличается от других мобильных ОС и основана на классической модели. Приложения могут спокойно работать в фоне, в системе нет никаких ограничений на их количество, функциональность при переходе к фоновому исполнению не урезается. Все, как на десктопе, за исключением одной детали: система имеет полное право убить любое фоновое приложение в случае недостатка оперативной памяти или (начиная с KitKat) излишней жадности приложения к ресурсам.

Этот механизм, названный lowmemorykiller, был придуман для того, чтобы, сохраняя черты полноценной многозадачной ОС, Android мог нормально жить в условиях ограниченного объема памяти и отсутствующего swap-раздела. Пользователь может спокойно запускать любые приложения и быстро переключаться между ними, а система сама позаботится о завершении давно не используемых приложений и о том, чтобы в устройстве всегда оставалась свободная память.

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

Со временем понимание принципов многозадачности пришло, и от таск-киллеров постепенно отказались. Однако их быстро сменил другой тренд - тюнинг самого механизма lowmemorykiller (например, с помощью приложения MinFreeManager). Основная идея метода в том, чтобы приподнять границы заполнения оперативной памяти, при достижении которых система начнет убивать фоновые приложения. Этакий способ «и нам и вам», который позволяет освободить немного памяти штатными средствами, не нарушая идей многозадачности Android.

Но к чему это в итоге приводит? Допустим, стандартные значения границ заполнения памяти - это 4, 8, 12, 24, 32 и 40 Мб, то есть при достижении свободного объема памяти 40 Мб будет убито одно из кешированных приложений (загружено в памяти, но не запущено, это такая оптимизация Android), при 32 - Content Provider, не имеющий клиентов, 24 - одно из редко используемых фоновых приложений, затем в расход идут сервисные процессы приложений (например, сервис музыкального проигрывателя), видимые на экране приложения и текущее запущенное приложение. Разница между последними двумя в том, что «текущее» - это приложение, с которым в данный момент имеет дело юзер, а «видимое» - это то, что, например, имеет уведомление в строке состояния или отображает поверх экрана какую-либо инфу.

В целом все это значит, что в смартфоне всегда будет свободно 40 Мб памяти, которых вполне достаточно для того, чтобы вместить еще одно приложение, после чего проснется поток LKM и начнет очистку памяти. Все ОK, все довольны. Система по максимуму использует память. А теперь представим, что будет, если юзер воспользуется советом доморощенного «эксперта» и поднимет эти значения так, что последнее будет составлять, ну, допустим, 100 Мб (обычно повышаются только три последних значения). В этом случае произойдет одна простая вещь: юзер потеряет 100 – 40 = 60 Мб памяти устройства. Вместо того чтобы использовать это пространство для хранения фоновых приложений, что полезно, так как сокращает время переключения на них и заряд батареи, система будет оставлять его свободным непонятно для чего.

Справедливости ради стоит сказать, что тюнинг LKM может быть полезен для девайсов с совсем уж небольшим объемом памяти (меньше 512) и Android 4.X на борту или для временного увеличения порогов. Некоторые разработчики твиков прямо рекомендуют использовать «агрессивные» настройки только в случае запуска тяжелого софта вроде hi-end игр, а все остальное время оставаться на стандартных. В этом действительно есть смысл.

Вердикт: лучше не трогать.

Твики I/O

В скриптах, публикуемых на форумах, можно часто встретить твики подсистемы ввода-вывода. Например, в том же скрипте ThunderBolt! есть следующие строки:

Echo 0 > $i/queue/rotational; echo 1024 > $i/queue/nr_requests;

Первая дает планировщику ввода-вывода понять, что он имеет дело с твердотельным диском, вторая увеличивает максимальный размер очереди ввода-вывода с 128 до 1024 (переменная $i в командах содержит путь к дереву блочного устройства в /sys, например /sys/block/mmcblk0/, скрипт проходит по ним в цикле). Далее по тексту можно встретить следующие строки, относящиеся к планировщику CFQ:

Echo 1 > $i/queue/iosched/back_seek_penalty; echo 1 > $i/queue/iosched/low_latency; echo 1 > $i/queue/iosched/slice_idle;

Далее следует еще несколько строк, относящихся к другим планировщикам (кстати, обрати внимание на совершенно лишние точки с запятой в конце команд). Что во всех этих строках не так? Первые две команды бессмысленны по двум причинам:

  1. Планировщики I/O в современном ядре Linux сами способны понять, с каким типом носителя информации они имеют дело.
  2. Такая длинная очередь ввода-вывода (1024) совершенно бессмысленна на смартфоне. Более того, она бессмысленна даже на десктопе и применяется на высоконагруженных серверах (из рекомендаций по настройке которых она, видимо, и попала в данный скрипт).

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

For i in /sys/block/mmc*; do echo noop > $i/queue/scheduler echo 0 > $i/queue/iostats done

Кроме включения планировщика noop, для всех накопителей он отключает накопление статистики I/O, что также должно позитивно сказаться на производительности (хотя это всего лишь капля в море, которая будет совершенно незаметна).

Еще один твик, который часто можно найти в скриптах тюнинга производительности, - это увеличение значения readahead для карты памяти до 2 Мб. Механизм readahead предназначен для заблаговременного чтения данных с носителя еще до того, как приложение запросит доступ к этим данным. Если ядро видит, что кто-то достаточно долго читает данные с носителя, оно пытается вычислить, какие данные понадобятся приложению в дальнейшем, и заранее загрузит их в оперативку, позволяя таким образом сократить время их отдачи.

Звучит круто, но, как показывает практика, алгоритм readahead очень часто ошибается, что приводит к лишним операциям ввода-вывода и расходу оперативной памяти. Высокие значения readahead (1–8 Мб) рекомендуются к применению на RAID-массивах, тогда как на десктопе или смартфоне лучше все оставить как есть, то есть 128 Кб.

Вердикт: кроме noop, не нужно ничего.

Твики системы управления виртуальной памятью

Кроме подсистемы I/O, принято также тюнинговать подсистему управления виртуальной памятью. Зачастую изменению подвергаются только две переменные ядра: vm.dirty_background_ratio и vm.dirty_ratio, которые позволяют регулировать размер буферов для хранения так называемых грязных данных, то есть тех данных, которые были записаны на диск приложением, но еще до сих пор находятся в оперативной памяти и ждут, пока они будут записаны на диск.

Стандартные значения этих переменных в десктопных Linux-дистрибутивах и Android примерно следующие:

* vm.dirty_background_ratio = 10 * vm.dirty_ratio = 20

Это значит, что при достижении размера буфера «грязных» данных в 10% от всего объема оперативки проснется ядерный поток pdflush и начнет записывать данные на диск. Если же операции записи данных на диск будут слишком интенсивными и, даже несмотря на работу pdflush, буфер будет продолжать расти, то при достижении 20% от объема оперативки система переключит все последующие операции записи в синхронный режим (без предварительной буферизации) и работа пишущих на диск приложений будет заблокирована до того момента, пока данные не будут записаны на диск (в терминологии Android это принято называть лагом).

При этом важно понимать, что, даже если размер буфера не достиг 10%, система так или иначе запустит поток pdflush через 30 с. Что нам дают эти знания? Фактически ничего, что мы могли бы использовать в своих целях. Комбинация 10/20% вполне разумна и, например, на смартфоне с 1 Гб памяти составляет примерно 100/200 Мб памяти, чего более чем достаточно в условиях редких всплесков записи, скорость которых зачастую ниже скорости записи в системную NAND-память или SD-карту (при установке софта или копировании файлов с компа). Но создатели скриптов оптимизации с этим, конечно же, не согласны.

Например, в скрипте Xplix можно найти примерно такие строки (в оригинале они намного длиннее из-за проверок на количество оперативной памяти и использования BusyBox):

Sysctl -w vm.dirty_background_ratio=50 sysctl -w vm.dirty_ratio=90

Данные команды применяются к устройствам с 1 Гб памяти, то есть устанавливают лимиты «грязного» буфера, равные (примерно) 500/900 Мб. Такие высокие значения абсолютно бессмысленны для смартфона, так как работают только в условиях постоянной интенсивной записи на диск, то есть опять же для высоконагруженного сервера. В ситуации со смартфоном они будут ничем не лучше стандартных. Кстати, в скрипте ThunderBolt! применяются гораздо более разумные (и близкие к стандартным) значения, но я сомневаюсь, что от их применения пользователь заметит хоть какую-то разницу:

If [ "$mem" -lt 524288 ];then sysctl -w vm.dirty_background_ratio=15; sysctl -w vm.dirty_ratio=30; elif [ "$mem" -lt 1049776 ];then sysctl -w vm.dirty_background_ratio=10; sysctl -w vm.dirty_ratio=20; else sysctl -w vm.dirty_background_ratio=5; sysctl -w vm.dirty_ratio=10; fi;

Первые две команды выполняются на смартфонах с 512 Мб оперативки, вторые - с 1 Гб, третьи - с более чем 1 Гб. Но на самом деле есть только одна причина изменять стандартные значения - девайс с очень медленной внутренней памятью и/или картой памяти (привет китайцам). В этом случае разумно разнести значения переменных, то есть сделать примерно так:

Sysctl -w vm.dirty_background_ratio=10 sysctl -w vm.dirty_ratio=60

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

Вердикт: лучше не трогать.

Выводы

Существует огромное количество и более мелких оптимизаций, включая «тюнинг» сетевого стека, изменение переменных ядра Linux и Android (build.prop), но 90% из них не оказывают никакого влияния на реальную производительность устройства, а остальные 10% либо улучшают одни аспекты поведения устройства в ущерб других, либо настолько незначительно повышают производительность, что ты этого даже не заметишь. Из того, что реально действует, можно отметить следующее:

  • Разгон. Небольшой разгон позволяет повысить производительность, а андервольтинг - сохранить немного батарейки.
  • Оптимизация баз данных. Сильно сомневаюсь, что это даст заметный прирост скорости работы, но теория говорит нам, что работать должно.
  • Zipalign. Забавно, но, несмотря на встроенную в Android SDK функцию выравнивания контента внутри APK-файлов, в маркете можно найти большое количество софта, не прошедшего через zipalign.
  • Отключение ненужных системных сервисов, удаление неиспользуемых системных и редко используемых сторонних приложений (об этом я уже писал в одной из прошлых статей).
  • Кастомное ядро с оптимизациями под конкретный девайс (опять же не все ядра одинаково хороши).
  • Уже описанный планировщик ввода-вывода noop.
  • Алгоритм насыщения TCP westwood+. Есть доказательства, что в беспроводных сетях он намного эффективнее применяемого в Android по умолчанию Cubic. Доступен в кастомных ядрах.

Бесполезные настройки build.prop

LaraCraft304 с форумов XDA Developers провела исследование и выяснила, что внушительное количество настроек /system/build.prop, которые рекомендуют к применению «эксперты», вообще не существуют в исходном тексте AOSP и CyanogenMod. Вот их список:

  • ro.ril.disable.power.collapse
  • ro.mot.eri.losalert.delay
  • ro.config.hw_fast_dormancy
  • ro.config.hw_power_saving
  • windowsmgr.max_events_per_sec
  • persist.cust.tel.eons
  • ro.max.fling_velocity
  • ro.min.fling_velocity
  • ro.kernel.checkjni
  • dalvik.vm.verify-bytecode
  • debug.performance.tuning
  • video.accelerate.hw
  • ro.media.dec.jpeg.memcap
  • ro.config.nocheckin
  • profiler.force_disable_ulog
  • profiler.force_disable_err_rpt
  • ersist.sys.shutdown.mode
  • ro.HOME_APP_ADJ

Оптимизация баз данных

Скрипт для оптимизации баз данных настроек системы и приложений. Для работы, естественно, требуется root и BusyBox.

#!/system/bin/sh
for i in \
`busybox find /data -iname «*.db»`;
do \
/system/xbin/sqlite3 $i ‘VACUUM;’;
/system/xbin/sqlite3 $i ‘REINDEX;’;
done;