Как ускорить слабый андроид. Работают ли техники оптимизации Android

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

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

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

Мы сконцентрировали внимание именно на ОС An­droid, так как она сегодня наиболее широко распространена и предлагает множество решений для «наведения порядка». Однако пользователи телефонов от Apple также найдут здесь несколько полезных советов и рекомендаций. Мы начнем с очистки системы, которую может провести любой неподготовленный пользователь, а позже перейдем уже к более эффективным действиям с глубоким вмешательством в работу мобильной операционной системы.

Чистка и оптимизация Android

1. Перезагрузите устройство

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

В меню выключения или перезагрузки (в нашем случае на примере смартфона LG G3 c оболочкой Optimus UI) вы попадете, удерживая кнопку включения нажатой в течение двух секунд. Если смартфон не реагирует на действия совсем, для его перезагрузки кнопку включения придется нажимать в течение 10–15 с.

2. Удалите ненужные приложения

Если ваша система «жалуется» на недостаток свободного места, вам следует удалить ненужные данные. Объем используемой памяти указан в пункте меню «Настройка | Память» . Для удаления лишних программ зайдите в «Приложения» и откройте список установленных утилит. Смахнув экран влево, перейдите на вкладку «Загруженные» - там вы увидите объем памяти, занимаемый каждым приложением.

3. Деактивация приложений

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

Отключить его можно следующим образом: перейдите на вкладку «Все» в меню «Настройки | Приложения» . Теперь прокрутите записи до «Приложение Google» и коснитесь элемента для отображения «Сведения о приложении» . Сначала необходимо выбрать пункт «Удалить обновления» , а затем отключить приложение.

4. Удалите содержимое кеша

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

Кеш-память всех программ вы сумеете удалить в меню «Настройки | Память | Данные в кеше | Да». Далее следует перейти в пункт «Удалить данные» , который находится в разделе «Информация о приложении» . При этом настройки программы можно полностью сбросить на «настройки по умолчанию» . Тем самым вы удаляете все сохраненные в приложении данные и переводите его в исходное состояние.

5. Наводим порядок в приложениях

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

Последняя также корректирует работу приложений и автоматизирует функцию удаления данных. SD Maid в основном весьма понятна: на главной странице достаточно найти неиспользуемые данные и нажать кнопку («Очистить»). На практике SD Maid даже в бесплатной версии предлагает расширенные функции для пользователей с правами администратора, что обеспечивает возможности более глубокой очистки системы во внутренней памяти.

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/12/uskorit-gadzhet..png 400w, http://androidkak.ru/wp-content/uploads/2015/12/uskorit-gadzhet-300x178.png 300w" sizes="(max-width: 162px) 100vw, 162px">
Почти все владельцы смартфонов на базе Android сталкиваются с тем, что со временем их устройство или планшет начинает тормозить, его производительность уменьшается, он не выполняет действия настолько быстро, как раньше. Существуют способы помочь вашему устройству и ускорить его, ведь не каждый может позволить себе купить что-то новенькое. В этой статье мы рассмотрим варианты решения проблемы как для начинающих, так и для тех, у кого имеется только высокий уровень пользования телефоном или планшетом.

Способы оптимизации работы вашего телефона или планшета на базе андроид

ВАЖНО: внимательно ознакомьтесь со следующими инструкциями! Они увеличат скорость работы устройства без использования сторонних приложений и включения рут-прав.

  1. На каждом андроиде есть работающие службы , которые нужно отключить. Для этого заходим в настройки, нажимаем на “приложения”, открываем вкладку работающие (или запущенные). Далее отключаем те службы, которые нам не нужны.
  2. Отключите GPS и геолокацию , если вы ими пользуетесь. Это влияет на быстрый разряд батареи и функционирование других приложений. При отключении этих функций производительность андроида можно ускорить.
  3. Используйте карту памяти . Из-за недостаточного места на телефоне или планшете, их работа становится менее быстрой,возможны даже постоянные зависания. Ускоряем девайс путем сброса всех данных на флеш-карту.
  4. Все видели функцию перелистывания рабочих столов на Android. Да, это визуально делает телефон/планшет симпатичнее, но без этого вполне можно обойтись. Эти действия не будут нагружать процессор и работоспособность увеличится. Для этого ищем настройки, выбираем там “о телефоне”. Нажать на него нужно 7 раз, после чего появится уведомление о том, что вы теперь разработчик. Возвращаемся в настройки и видим новый пункт “для разработчиков”. В некоторых версиях андроида этот пункт уже есть. Далее находим пункт “скорость анимации” и отключаем ее.
  5. Отключайте синхронизацию с различными сервисами, это тоже влияет на быстродействие смартфона или планшета. Заходим в уже знакомые нам настройки, далее выбираем пункт “аккаунты” и отключаем всё то, чем не пользуемся.
  6. Стараемся не пользоваться лаунчерами , живыми обоями и другими эффектами. Это, конечно же, делает пользование телефоном/планшетом значительно приятнее, но при этом очень сильно влияет на скорость работы.
  7. Если вам не особо важны все данные (их, кстати, можно сбросить на флешку), которые есть на вашем Android, вы можете воспользоваться решением, которое больше подойдет для опытных пользователей. Это перепрошивка смартфона или возврат к заводским настройкам. Со вторым значительно проще. Для этого заходим в настройки, ищем “резервное копирование и сброс” и выбираем “общий сброс”. С перепрошивкой телефона/планшета придется повозиться. Зайдя в настройки и выбрав пункт “о телефоне”, вы можете посмотреть, есть ли обновление версий ПО для ваших гаджетов. В противном случае можно скачать прошивку с интернета. Делать это всё строго по инструкциям, иначе вы можете просто получить “кирпич”.

Всем доброго времени дорогие друзья, знакомые, читатели и прочие личности. Сегодня посмотрим как ускорить Андроид, всякие там приложения под него и игры вроде PUBG Mobile в том числе

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

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

Вот о последних сегодня и поговорим.

Вводная

Все наверное слышали про всякие там режимы разработчика в Android, которые позволяют что-то такое там хитрое нашаманить в настройках.

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

Тем не менее, - ведь попытка не пытка. Во-первых, телефон можно сделать быстрее, во-вторых и в трехмерных играх всё будет бегать побыстрее (с выходом PUBG Mobile ) все прямо помешались на этой идее), да и вообще, - интересно и приятно.

Что касается возможных побочных эффектов, - тут всё просто. В некоторых случаях всё конечно идет здорово, весело и всячески на пользу. Производительность растёт, ускорение присутствует, PUBG летает, лаунчер телефона счастлив безмерно, а Вы, как его владелец, - пишите хорошие комментарии под этой статьёй, рассказываете о ней друзьям и всё такое прочее-разное.

Во всех остальных же случаях, стоит понимать, что многое зависит от железа в Вашем Android-телефоне, планшете или на чём Вы там планируете всё это запускать и использовать, - так тут вопрос техники.

И да, стоит понимать, что производительность может снизиться, а расход батареи увеличится. Как это исправить? Вернуть всё назад, настройки отключить.

Как ускорить Андроид и запустить настройки разработчика

  • Переходим в настройки и находим вкладку "О телефоне ";
  • Там где-то прячется версия операционной системы, ядра или номер сборки (см.скриншоты ниже);
  • Старательно тыркаем по ней несколько раз, пока не получим обидное "Вы стали разработчиком ".

Теперь где-то в настройках (возможно отдельно) у Вас пункт, который называется "Для разработчиков ". Вот он там нам и нужен.

Ах да, скриншоты по включению (если с первого раза не получается, то потыкайте несколько раз по различным пунктам, вроде сборка/версия и тп, - должно помочь):

Собственно, тут и живет вся наша оптимизация, здесь же можно понять как ускорить Андроид и понять хитрости, чтобы Ваш телефон / планшет или устройство, работали быстрее, а во всякие игры, вроде PUBG Mobile игралось комфортнее.

Как с этим взлетать: как ускорить Андроид, игры вообще и PUBG Mobile в частности

Мы кстати уже немного писали на эту тему, когда рассказывали про ограничение числа процессов в статье " ":

Итого нам требуется "Многопроцессорный WebView ", - это один из крайне важных пунктов, который ускорит систему вцелом, хотя и может негавтивно сказаться на времени работы от батареи.

Как ускорить Андроид еще сильнее? И визуально понятно? Тоже самое касается пункта "оптимизация SD карты ", если конечно она у Вас вообще есть (карта) и пункт вообще).

Дальше, если Вы не любитель всяческих там анимаций, то крайне рационально будет отключить анимацию окон, переходов и убрать длительность анимации. Это на порядок сэкономит ресурсы, а визуально (субъективно и по ощущениям) у Вас телефон прямо начнет летать вообще.

Еще больше ускорения и оптимизации

Что касается аппаратного ускорения и GPU для компоновки экрана, - считается этот пункт актуален только на быстрых графических ядрах и только для 2D -приложений.

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

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

Послесловие

На сим всё, теперь Вы знаете как ускорить Андроид. Традиционно, - это не моветон и нюансов может быть много. У кого-то сие возымеет эффект, а у кого-то начнет кушать батарею. Кто-то вообще не заметить разницы и не поймет зачем оно вообще нужно.

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

Такие дела. Если интересно, - пишите в комментариях, - мы разовьем тему и расскажем как тем же Kernel Auditor "ом реально ускорить любой девайс, исходя из глубокого настройка ядра любого телефона.

Как и всегда, если есть какие-то мысли, вопросы, дополнения и всё такое прочее, то добро пожаловать в комментарии к этому материалу.

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

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


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

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

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

3. Удалите приложения, которыми не пользуетесь. Пожалуй, каждый из нас знаком с Google Play, который представляет вниманию пользователей устройств с ОС Android множество отличных приложений, причем большинство из них совершенно бесплатны. Удержаться от того, что бы не установить на свой смартфон или планшет десяток другой интересных программ очень сложно. Одно дело, когда установлены только действительно необходимые программы, однако зачастую устройство переполнено бесполезными приложениями. Между тем, тот факт, что вы их не используете не означает, что они никак не отражаются на работе вашего Android. Программы запускают фоновые процессы и тем самым поглощают ресурсы ОС. Следовательно, чтобы ускорить андроид нужно избавиться от лишних приложений и оставить только действительно нужное.

4. Удалите содержимое кеша. Удаление ненужных приложений, несомненно, отразиться на производительности Android, однако также следует знать, что многие программы со временем накапливают данные в кеш — памяти, что также замедляет скорость работы устройства. Удалить все приложения, конечно же, не получится, иначе зачем вообще приобретать Android, зато удалить содержимое кеша вполне возможно. Зайдите в настойки девайса и пройдите по следующему пути: «приложения»>»управления приложениями»> «сведения о приложении» и выберите пункт «Очистить кеш «. Чтобы не повторять подобные действия в отдельности для каждого приложения, можно удалить кеш всех программ в меню «Настройки — > Память — > Данные в кеше — > Да». После этого нужно пройти в раздел «Удалить данные», который находится во вкладке «Информация о приложении «. Чтобы полностью сбросить настройки приложения нужно нажать на «настройки по умолчанию «. Следует сказать, что подобные действия проведут к тому, что будут удалены все сохраненные в приложении данные и оно вернется в исходное состояние. То есть, если вы установили настройки по умолчанию, например, для какой-то игры, то все ранее достигнутые достижения аннулируются. Поэтому будьте разборчивы.

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

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

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


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

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

После получения root-прав вы сможете получить следующие возможности:

  • Вы сможете разогнать процессор устройства. Благодаря данному процессу существенно увеличивается скорость работы гаджета.
  • У вас появится возможность установки модифицированной прошивки с дополнительным функционалом. Подобные прошивки также называют костомными и они не являются официальными. Следует понимать, что такие прошивки действительно могут ускорить производительность устройства и внести другие положительные изменения в его работе, тем не менее, есть у них и отрицательные стороны. Среди костомных прошивок часто встречаются версии плохого качества, которые могут только ухудшить работу смартфона или планшета. Именно поэтому нужно ответственно подходить к выбору модифицированной прошивки.
  • Появится возможность удаления приложений, установленных по умолчанию. Выше уже упоминалось, что удаление ненужных приложений ускоряет андроид, но на каждом смартфоне и планшетном компьютере есть предварительно установленные приложения, которые порой бесполезны, но удалить их возможности нет. Root-права такую возможность предоставляют и вы сможете избавиться от любого приложения. Главное будьте осторожны, чтобы не удалить системное приложение.

Это далеко не полный список возможностей, которые предоставляет получение root прав.

Как получить ROOT права на Android

Если вы все же решили получить Root-права, то нужно следовать определенным правилам. Root (рутирование) устройства означает получение прав суперпользователя, то есть вы получаете полный контроль над своим устройством и можете осуществлять практически любые действия, в том числе и потенциально опасные для смартфона или планшета. ROOT права бывают нескольких видов: Full Root (полный доступ без каких либо ограничений), Shell Root (без доступа к папке system), Temporary Root (временный Root, работает только до первой перезагрузки устройства).

Процедура получения root-прав не сложная и не предполагает проблем, но только при условии внимательного выполнения всех инструкций. Ничего сверхъестественного вам делать не придется. Сегодня существует довольно много специальных утилит, которые автоматизируют процесс получения права суперпользователя, благодаря чему справиться с этой задачей могут даже начинающие пользователи. Из наиболее известных можно отметить следующие программы: Framaroot, Kingo Android ROOT, SuperOneClick, UnLock Root и Z4 Root. Все эти приложения можно использовать для получения root-прав. В данной статье мы говорим о том, как ускорить андроид, поэтому подробно рассматривать процесс получения права суперпользователя с помощью приведенных выше программ здесь мы не станем. Если вас заинтересовал этот метод, то рекомендуем ознакомиться со статьей ««.

С ускорением android надеемся все понятно и теперь ваше устройство начнет работать быстрее. В завершение следует сказать, что мы не стали упоминать специальные утилиты для оптимизации устройства, так как в отличие от windows для android подобные меры не эффективны, по крайней мере именно это демонстрирует наша практика.

Блуждая по форумам и разного рода сайтам, посвященным 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;