Как задействовать все 8 ядер на андроиде. Как используются многоядерные процессоры. Повышение частоты процессора с помощью программ

Когда у меня появился первый компьютер, никому даже и в голову не могло прийти спросить, сколько ядер у его процессора. Однако прошло совсем немного времени, и появились двухъядерные процессоры, затем четырехъядерные и так далее. То же самое достаточно быстро случилось со смартфонами, однако не все понимают, для чего процессору смартфона иметь 8 ядер. Более того, многие считают, что Android-приложения для своей работы используют только одно ядро. Гэри Симс из Android Authority разобрался в этом вопросе и опубликовал свое объяснение.

Первое, что следует знать о мобильных ARM-процессорах, это то, что в восьмиядерных процессорах используется как минимум две разные архитектуры ядер. В современном 64-битном восьмиядерном процессоре будут использованы высокопроизводительные ядра Cortex-A72 вместе с энергоэффективными ядрами Cortex-A53. Такое сочетание называется big.LITTLE, и это отличает ARM-процессоры от тех, что используются для компьютеров. 8-ядерный процессор в смартфоне используется не для высокой производительности, а . Если мы это запомнили, тогда можно идти дальше.

Как используются многоядерные процессоры

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

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

Как это происходит в случае с Android

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

Гэри Симс провел несколько тестов и не нашел ни одного приложения, которое использовало бы все 8 ядер на 100%. Так и должно быть, ведь, как мы помним, 8-ядерные процессоры применяются ради энергоэффективности. Система выбирает подходящую комбинацию ядер и, когда требуется нагрузка, подключает высокопроизводительные ядра, а когда есть возможность сэкономить энергию, в ход идут энергоэффективные. Однако в некоторых случаях работают и те и другие.

Тесты

Для того чтобы проверить, как используются ядра процессора при выполнении различных приложений, Гэри Сименс создал программу, считывающую эти данные. Затем он протестировал несколько приложений на устройстве с четырехъядерным Snapdragon 801 и на устройстве с восьмиядерным Snapdragon 615. Совместно с Робертом Триггсом из Android Authority были созданы графики работы ядер этих двух процессоров с одним и тем же приложением.

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

В случае с восьмиядерным Snapdragon 615 браузер Chrome большую часть времени использовал 7 ядер, иногда 8, а иногда 6 или 4. Так как Snapdragon 615 — это big.LITTLE-процессор, то и ядра его используются иначе. Вы можете видеть на графике, как растет нагрузка на одном ядре в то время, как она падает на другом.

Chrome — многопоточное приложение, а что с остальными? Точно таким же образом были проверены приложения Gmail, YouTube Riptide GP2 и Temple Run 2. Игра Temple Run 2 нагрузила только одно ядро, однако при запуске на процессоре MediaTek нагрузка была равномерно распределена. Остальные приложения подтвердили чистоту эксперимента с Chrome. Была также прослежена работа AnTuTu, и на графике четко видно, как искусственно создается нагрузка на все ядра процессора.

Вывод

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

По материалам Android Authority

Многие привыкли подключать смартфоны к заряднику каждый вечер. Сегодня это норма. Развиваются технологии, оптимизируется Android, производители нашпиговывают свои аппараты hi-end начинкой, но при этом, как будто сговорившись, очень неохотно увеличивают емкость аккумуляторов, издевательски балансируя на том самом уровне автономии в один световой день. Но не будем поднимать тему о заговоре маркетологов, в этой статье мы раскажем об оптимизации того, что имеем, и всех наиболее эффективных и безопасных способах улучшить энергосбережение смартфона как минимум на 50%.

ЧАСТЬ 1. ЖЕЛЕЗО

Беспроводные сети и GPS

Запомни: хочешь сэкономить энергию - отключай лишних потребителей, то, чем в данный момент не пользуешься. Например, оставленные включенными беспроводные сети Wi-Fi и Bluetooth постоянно сканируют пространство и ищут доступные точки для подключения или устройства для спарринга; включенная «передача данных» (мобильный интернет) позволяет многочисленным приложениям постоянно «ломиться» в сеть для обновления своих данных и отправки запросов, дополнительно загружая процессор и опустошая проплаченный трафик или кошелек; включенная геолокация (GPS, ГЛОНАСС, определение координат по беспроводным сетям) помогает постоянно отслеживать твое положение, выполняя запросы любопытных приложений. Все это может потреблять значительную часть заряда аккумулятора, поэтому «вымыл руки, закрыл кран», ну в смысле - нажал на кнопку и отключил потребителя.

Мобильная сеть

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

Проблема выбора: 2G или 3G Рассматривая характеристики любого телефона, ты, наверное, замечал, что производители всегда указывают время автономной работы в сетях 3G меньше, чем в сетях 2G. Это объясняется тем, что сети 3G многоканальны и обеспечивают более высокое качество и надежность соединения (безразрывный переход от одной станции к другой). Поэтому, если тебя не пугают кратковременные потери сигнала и чуть худшее качество разговора при выходе из подземного перехода (хотя это зависит и от множества других факторов), можешь в настройках режима сети (Настройки → Еще →Мобильные сети → Тип сети) выбирать «только 2G» (only GSM) и экономить до 20% на связи с сетью.

Кроме того, если ты находишься в зоне плохого приема сети 3G, а на аппарате выбран автоматический режим «2G/3G», аппарат будет постоянно пытаться подключиться к сети 3G, даже если ее сигнал в несколько раз слабее сигнала 2G. Стоит ли говорить, что такие постоянные скачки требуют значительного расхода энергии, которого также можно избежать.

Однако, когда речь заходит о передаче данных (подключении к интернету), ситуация меняется на противоположную. При болееменее значительном трафике предпочтительнее использовать сети 3G или Wi-Fi вместо 2G. На первый взгляд это кажется спорным утверждением, но дьявол кроется в деталях: во-первых, передача данных в сети 2G (по технологии EDGE) требует на 30% больше энергии, чем в сети 3G, и лишь на 10% меньше, чем потребляет Wi-Fi; во-вторых, скорость передачи данных в сети 3G (HSPA) до 170 раз выше скорости в сети 2G (EDGE), не говоря уже о Wi-Fi, где разница будет в 600 раз. Это означает, что для скачивания той или иной информации устройству потребуется меньше времени, а значит, и меньше энергии.

Простой пример: ты хочешь скачать несколько песен общим размером 30 Мб. С помощью EDGE на это уйдет 30 Мб * 8 / 0,08 Мбит/с / 60 = 50 мин, c помощью HSPA - 30 Мб * 8 / 14 Мбит/с = 17 с, ну а с помощью Wi-Fi - всего 30 Мб * 8 / 50 Мбит/с = 5 с. Теперь, умножив время скачивания на среднее потребление того или иного режима, получим: для EDGE - 300 мА * 50 мин / 60 = 250 мА ч; для HSPA - 210 мА * 17 с / 60 / 60 = 1 мА ч; для Wi-Fi - 330 мА * 5 с / 60 /60 = 0,5 мА ч. В конечном итоге все будет зависеть от объема данных: чем он больше, тем больше будет экономия при использовании более скоростной сети.

Вывод.

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

Датчики и сенсоры

Современные телефоны напичканы всевозможными датчиками, которые, естественно, требуют энергии для своей работы. Посмотреть, какие датчики есть в твоем телефоне и сколько они потребляют, очень просто, достаточно установить приложение Android System info, зайти во вкладку System и выбрать пункт Sensor. В первых Android-устройствах обычный акселерометр (датчик, определяющий положение устройства) потреблял до 15 мА ч, в современных аппаратах это значение, как правило, в 100 раз меньше, поэтому нет особого смысла отключать «автоматическую ориентацию экрана» или «автоматическую яркость» (датчик освещенности), значительным образом это не повлияет на общее энергопотребление аппарата.

Однако следует помнить, что многие приложения, в которых задействовано управление наклонами аппарата, могут использовать сразу несколько датчиков (акселерометр, гироскоп, датчик вращения, датчик ускорения, датчик ориентации, датчик гравитации и другие), что в сумме может дать потребление до 100 мА ч.

Экран

Экран любого современного устройства - главный потребитель энергии, при этом есть ряд основных факторов, влияющих на его прожорливость:

  1. Размер экрана. Чем экран больше, тем больше энергии необходимо на его подсветку.
  2. Яркость и время подсветки. Чем больше значения яркости экрана и тайм-аута отключения, заданные в настройках, тем больше устройство потребляет энергии. Рекомендую установить автоматическое управление яркостью (по датчику освещенности) и тайм-аут подсветки не более 30 с.
  3. Разрешение экрана. Чем оно выше, тем больше энергии потребляет видеоускоритель устройства, отвечающий за отображение изображения на экране.
  4. Технология изготовления экрана. Грубо все экраны можно разделить на две категории:
  • жидкокристаллические (ЖК) дисплеи, состоящие из ЖК-матрицы и источника света (подсветки). К ним относятся экраны LСD, TFT-LCD, SCLCD, IPS, TFT;
  • дисплеи на органических светодиодах (OLED), состоящие из активной матрицы, излучающей свет. К ним относятся экраны AMOLED, Super AMOLED и подобные.

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

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

В AMOLED-экранах свет излучают только те пиксели, которые задействованы в формировании изображения, если пиксель в нем не участвует (при черном цвете на картинке), он ничего не излучает и, соответственно, не потребляет энергии. Таким образом, общее потребление экрана будет зависеть не только от установленной яркости, но и от изображения: чем больше в нем черного цвета и темных оттенков, тем меньше потребление энергии экраном. Однако есть и обратное правило: чем больше на картинке белых участков, тем больше такой экран потребляет энергии, и в определенных случаях AMOLED-экран может оказаться даже более «прожорливым», чем ЖК-экран.

Сравнение энергопотребления экранов LCD и AMOLED в зависимости от отображаемой картинки

Смотрим таблицу..
Таким образом, все плюсы от экономичности AMOLED- экранов можно получить, лишь соблюдая некоторые нехитрые правила, а именно: стараться не использовать белый фон, в приложениях устанавливать темные темы; в качестве обоев рабочего стола использовать темные картинки с температурой цветов не более 6500К. Только в этом случае AMOLED-экран сможет оказаться до двух раз экономичнее ЖК-экрана.

Процессор

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

Частота.

Все современные устройства могут управлять частотой своего процессора, уменьшая ее при малых нагрузках, тем самым снижая энергопотребление. Правильно оптимизированное устройство при выключении экрана должно переходить в режим экономичного энергопотребления, снижать частоту процессора до 15–30% от максимальной величины и оставаться на этой частоте до следующего пробуждения пользователем. Поэтому оценить оптимизацию энергопотребления устройства можно, посмотрев статистику работы процессора на той или иной частоте. Для этого открываем приложение Android System info, выбираем вкладку System и пункт CPU.

Если большую часть времени процессор работает на максимальной частоте, значит, с оптимизацией есть проблема. Для ее решения устанавливаем приложение SetCPU (нужен root), с помощью которого можно не только задать рабочую частоту процессора (или уточнить диапазон рабочих частот), но и создать профили частот, активируемые по какому-либо событию (запуску приложения, уменьшению заряда, отключению экрана, времени), то есть оптимизировать процесс управления частотой под себя. Например, частоту в рабочем режиме можно установить не более 1000–1200 МГц; по событию «экран выключен» и «заряд менее 15%» максимальную частоту ограничить половиной от рабочей частоты, а минимальную - установить на минимум; задать профили для часто запускаемых приложений с ограничением их максимальной рабочей частоты той величиной, при которой сохраняется комфортная для тебя отзывчивость интерфейса (так, для игр вполне может хватить 800 МГц, а для просмотра фильмов и прослушивания музыки - 500 МГц). Такой подход поможет сэкономить до 50% заряда, расходуемого процессором.

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

Скажу лишь, что для многоядерных устройств предпочтительнее использовать режим hotplug (если такого режима у тебя в списке SetCPU нет - используй interactive, ну или ondemand, он есть по умолчанию на большинстве ядер), который в простое отключает незадействованные ядра процессора и наиболее эффективен в соотношении производительность/экономичность.

Уменьшение напряжения процессора (андервольтинг).

Этот вариант оптимизации энергопотребления процессора уже рассматривался в статье , поэтому не будем на нем останавливаться.

ЧАСТЬ 2. СОФТ

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

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

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

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

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

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

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

Disable Service: синий - работающие в фоне процессы, красный -отключенные, белый - общее количество процессов приложения

C такими приложениями и процессами можно поступить одним из следующих способов:

  • Удалить, если это не особо нужное пользовательское предложение.
  • Отключить автозагрузку с помощью Autorun Manager. Советую отключать не только подозрительные и будящие программы, но и другие редко используемые приложения, которые часто висят в оперативной памяти и кеше (вкладка настроек «Приложения → Работающие»). Так в памяти появятся действительно часто запускаемые программы.
  • Временно заморозить с помощью Titanium Backup или того же Autorun Manager. Это на случай, если приложение понадобится в будущем или если речь идет о системном приложении, которое нежелательно удалять (если, например, ты хочешь сохранить возможность обновления по воздуху). При заморозке приложение пропадет из списка программ, но физически не удалится. Однако следует помнить, что заморозка некоторых системных приложений может привести к сбою в работе системы, поэтому действуем осторожно.
  • Отключить конкретный будящий процесс приложения с помощью программы Disable Service, без отключения всего приложения.
  • Принудительно отправить будящие приложения в глубокий сон с помощью приложения Greenify. Но следует учитывать, что «гринифицированное» приложение перестанет запускаться по событиям, обновлять свои данные, получать push-уведомления и прочее до следующего запуска вручную. Еще одна полезная мелочь - Greenify встраивается в Wakelock Detector, и его функционал доступен прямо оттуда.

Иногда сторонние приложения могут влиять на сон устройства через системные процессы, которые оказываются «крайними» и выводятся в списке wakelock’ов как виновники незасыпания (например, процессы suspend, events/0). Найти истинных виновников незасыпания в этом случае можно, последовательно замораживая/удаляя подозрительные приложения (начав с недавно установленных) и наблюдая за лидерами в списке wakelock’ов.

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

  • Покупай аккумуляторы и зарядные устройства только от официального производителя. Как показывает опыт, реальная емкость дешевых аккумуляторов гораздо меньше указанной, а дешевые зарядные устройства в лучшем случае не выдадут заявленный на них максимальный ток, а в худшем - навредят аккумулятору повышенным напряжением или пульсирующим током.
  • Старайся заряжать устройство не от USB-порта компьютера, а от сетевой зарядки. На старте зарядка аккумулятора идет более высоким током, который не может выдать USB-порт, в результате увеличивается время зарядки и уменьшается ресурс аккумулятора (прежде всего это касается мощных аккумуляторов с большим зарядным током от 1 А).
  • Заряжай устройства полными циклами, старайся не допускать глубокого разряда (до выключения) и частичных подзарядов в середине цикла, все это сказывается на ресурсе аккумулятора, постепенным снижением его емкости.
  • SD- и SIM-карты могут влиять на энергопотребление. Если ты столкнулся с высоким разрядом, попробуй походить день без SD-карты. Если предположения подтвердятся - отформатируй карту в самом телефоне или при необходимости замени ее. SIM-карты также лучше менять на новые каждые 3–4 года (благо это бесплатно).
  • Раз в полгода (а при подозрительно быстром разряде - чаще) проверяй внешнее состояние аккумулятора на наличие вздутия и деформаций (начало вздутия можно заметить, приложив аккумулятор к ровной поверхности), в случае их обнаружения аккумулятор лучше заменить.
  • Также периодически продувай и чисти USB-контакты устройства.
  • Last updated by at Январь 27, 2017 .

Зачем разгонять андроид

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

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

Как разогнать андроид

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

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

Необходимо установить одно из приложений, помогающих разогнать андроид. Это может быть AnTuTuCPU Master или SetCPU.

Чтобы использовать эти приложения, у владельца смартфона должны быть Root-права.

Как разогнать андроид программой AnTuTuCPU Master

Программа AnTuTuCPU Master имеет как платную, так и бесплатную версию. Так как бесплатная версия имеет минимально необходимый для разгона набор, то можно и не покупать полную версию.Несомненный плюс программы - поддержка русского языка. Что значительно упрощает работу. Кроме того профили в программе также имеют разделение. Для опытных пользователей лучше перейти на пункт «I/O Scheduler». Сделать это можно в разделе «Расширения».

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

Как разогнать андроид программой SetCPU

Вторая программа для разгона Андроид платная. Ее также можно скачать на сервисе Google play. Плюсом приложения является разнообразие возможных манипуляций с телефоном.

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

Сначала необходимо получить Root-права и нажать на пункт «Recomended». После того как пользователь устройства подтвердит настройки, которые были рекомендованы программой, устройство будет полностью готово к разгону.

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

Если пользователь не хочет вникать в суть работы конкретного мобильного устройства, то можно просто дать разрешение программе SetCPU начинать работу автоматически вместе с включением телефона. Для этого просто выберите режим работы программы «ondemand/interactive». А в меню выберете пункт «Set on boot». В результате программа будет делать всю работу по разгону устройства самостоятельно.

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

Custom kernel?

Что такое кастомное ядро? Как мы все знаем, Android представляет собой пирог, состоящий из трех базовых слоев: ядро Linux, набор низкоуровневых библиотек и сервисов и виртуальная машина Dalvik, поверх которой работает графическая оболочка, высокоуровневые инструменты и сервисы, а также почти все приложения, установленные из маркета. Создатели большинства альтернативных кастомных прошивок обычно работают только с двумя верхними слоями, добавляя функции в графическую оболочку (например, кнопки в шторке), изменяя ее (движок тем в CyanogenMod), а также добавляя новые системные сервисы (эквалайзер в CyanogenMod) и оптимизируя существующие.

Авторы популярных прошивок также по мере возможностей вносят изменения в ядро Linux: оптимизируют (сборка с более агрессивными флагами оптимизации компилятора), включают в него новую функциональность (например, поддержку шар Windows), а также вносят другие изменения вроде возможности поднимать частоту процессора выше предусмотренной производителем. Зачастую все это остается за кадром, и многие пользователи кастомных прошивок даже не подозревают об этих возможностях, тем более что тот же CyanogenMod поставляется с кастомным ядром только для ограниченного круга девайсов, для которых доступны как исходники родного ядра, так и возможность его замены. Например, почти все прошивки CyanogenMod для смартфонов Motorola используют стандартное ядро - заменить его на свое невозможно из-за непробиваемой защиты загрузчика.

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

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

Умный регулировщик

В SoC’ах OMAP35XX, используемых, например, в Galaxy S II и Galaxy Nexus, есть функция SmartReflex, которая выполняет роль умной системы регулировки вольтажа при изменении нагрузки на процессор. По сути, она избавляет от необходимости тонкого тюнинга вольтажа пользователем.

Оптимизации

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



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

  • Noop (No operation) - так называемый не-планировщик. Простая FIFO очередь запросов, первый запрос будет обработан первым, второй вторым и так далее. Хорошо подходит для твердотельной памяти и позволяет справедливо распределить приоритеты приложений на доступ к накопителю. Дополнительный плюс: низкая нагрузка на процессор в силу ну очень простого принципа работы. Минус: никакого учета специфики работы девайса, из-за чего могут возникнуть провалы производительности.
  • SIO (Simple I/O) - аналог планировщика Deadline без учета близости секторов друг к другу, то есть разработанный специально для твердотельной памяти. Две главные изюминки: приоритет операций чтения над операциями записи и группировка операций по процессам с выделением каждому процессу кванта времени на выполнение операций. В смартфонах, где важна скорость работы текущего приложения и преобладание операций чтения над записью, показывает очень хорошую производительность. Доступен в Leankernel, ядре Matr1x для Nexus 4 и SiyahKernel.
  • ROW (READ Over WRITE) - планировщик, специально разработанный для мобильных устройств и добавленный в ядро всего несколько месяцев назад. Основная задача: первоочередная обработка запросов чтения, но справедливое распределение времени и для запросов записи. Считается лучшим на данный момент планировщиком для NAND-памяти, по умолчанию используется в Leankernel и Matr1x.

Стоит сказать, что почти все стандартные прошивки и половина кастомных до сих пор используют ядро со стандартным для Linux планировщиком CFQ, что, впрочем, не так уж и плохо, поскольку он умеет правильно работать с твердотельными накопителями. С другой стороны, он слишком сложен, создает бОльшую нагрузку на процессор (а значит, и батарею) и не учитывает специфику работы мобильной ОС. Еще один популярный выбор - это планировщик Deadline, который не хуже SIO, но избыточен. Посмотреть список доступных планировщиков можно с помощью такой команды:

# cat /sys/block/*/queue/scheduler

Для изменения применяется такая (где row - это имя планировщика):

# for i in /sys/block/*/queue/scheduler; do echo row > $1; done

Некоторые сборщики ядер применяют и другой вид оптимизации, связанный с вводом-выводом. Это отключение системного вызова fsync, применяемого для принудительного сброса изменившегося содержимого открытых файлов на диск. Существует мнение, что без fsync система будет реже обращаться к накопителю и таким образом удастся сохранить время процессора и заряд батареи. Довольно спорное утверждение: fsync в приложениях используется не так уж и часто и только для сохранения действительно важной информации, зато его отключение может привести к потере этой же информации в случае падения операционной системы или других проблем. Возможность отключить fsync доступна в ядрах franco.Kernel и GLaDOS, а для управления используется файл /sys/module/sync/parameters/fsync_enabled, в который следует записать 0 для отключения или 1 для включения. Повторюсь, что использовать эту возможность не рекомендуется.

Добавляем в ядро новые функции

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

В основном это различные драйверы и файловые системы. Например, некоторые ядра включают в себя поддержку модуля CIFS, позволяющего монтировать Windows-шары. Такой модуль есть в ядре Matr1x для Nexus S, faux123 для Nexus 7, SiyahKernel и GLaDOS. Сам по себе он бесполезен, но в маркете есть несколько приложений, позволяющих задействовать его возможности.

Еще одна полезность - это включение в ядро драйвера ntfs-3g (точнее, в пакет с ядром, сам драйвер работает как Linux-приложение), который необходим для монтирования флешек, отформатированных в файловую систему NTFS. Этот драйвер есть в ядрах faux123 и SiyahKernel. Обычно он задействуется автоматически, но если этого не происходит, можно воспользоваться приложением StickMount из маркета.

Многие ядра также имеют в своем составе поддержку так называемой технологии zram, которая позволяет зарезервировать небольшой объем оперативной памяти (обычно 10%) и использовать ее в качестве сжатой области подкачки. В результате происходит как бы расширение количества памяти, без каких-либо серьезных последствий для производительности. Доступно в Leankernel, включается с помощью Trickster MOD или командой zram enable.

Последние две интересные функции - это Fast USB charge и Sweep2wake. Первая - это не что иное, как принудительное включение режима «быстрой зарядки», даже если смартфон подключен к USB-порту компьютера. Режим быстрой зарядки доступен во всех более-менее новых смартфонах, однако в силу технических ограничений он не может быть включен одновременно с доступом к карте памяти. Функция Fast USB charge позволяет включить этот режим всегда, отключив при этом доступ к накопителю.

Sweep2wake - это новый способ будить устройство, изобретенный автором Breaked-kernel. Смысл его в том, чтобы включать смартфон, проведя пальцем по клавишам навигации, располагающимся ниже экрана, либо по самому экрану. Это действительно удобная функция, но в результате ее включения сенсор будет оставаться активным даже во время сна устройства, что может заметно разряжать батарею.

Разгон, вольтаж и энергосбережение

Разгон популярен не только среди владельцев стационарных компов и ноутбуков, но и в среде энтузиастов мобильной техники. Как и камни архитектуры x86, процессоры и графические ядра мобильной техники отлично гонятся. Однако сам способ разгона и предпринимаемые для его осуществления шаги здесь несколько другие. Дело в том, что стандартные драйверы для SoC’ов, отвечающие за энергосбережение и изменение частоты процессора, обычно залочены на стандартных частотах, поэтому для тонкого тюнинга приходится устанавливать либо альтернативный драйвер, либо кастомное ядро.

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

Всем этим можно управлять с помощью известной платной утилиты SetCPU или же бесплатной Trickster MOD. Рекомендации по управлению все те же, что и для настольных систем. Нижнюю частоту процессора лучше установить минимальной, но не ниже 200 МГц (чтобы избежать лагов), верхний порог повышается постепенно с тестированием стабильности работы, при падении которой рекомендуется немного поднять вольтаж для данной частоты. Каких-то рекомендаций по вольтажу нет, так как каждый процессор уникален и значения будут для всех разными.

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

  • SmartAssV2 - переосмысление алгоритма Interactive с фокусом на сохранение батареи. Основное отличие в том, чтобы не дергать процессор на высокие частоты в случае кратковременных всплесков нагрузки, для которых хватит и низкой производительности процессора. По умолчанию используется в ядре Matr1x.
  • InteractiveX - тюнингованный алгоритм Interactive, главная особенность которого в залочке процессора на минимальной указанной пользователем частоте и обесточивании второго ядра процессора во время отключения экрана. По умолчанию используется в Leankernel.
  • LulzactiveV2 - по сути, изобретенный заново OnDemand. Когда нагрузка на процессор превышает указанную (по умолчанию 60%), алгоритм поднимает частоту на определенное число делений (по умолчанию 1), при понижении нагрузки - опускает. Особый интерес представляет тем, что позволяет самостоятельно задавать параметры работы, поэтому подходит для прожженных гиков.

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

Интерфейсы управления

Большинство популярных кастомных ядер включают в себя несколько механизмов тонкого управления различными параметрами драйверов, наиболее распространены из которых ColorControl, GammaControl, SoundControl и TempControl.

Первые два интерфейса доступны практически везде, включая ядра CyanogenMod, вторые два - в Leankernel и, может быть, в других. Так или иначе, всеми ими можно управлять с помощью Trickster MOD.

Ядра

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

  • Leankernel - ядро для Galaxy Nexus, Nexus 7 и Galaxy S III. Основной акцент при разработке делается на простоту и скорость работы. Алгоритм энергосбережения: InteractiveX V2, планировщик I/O: ROW, все перечисленные выше интерфейсы управления, поддержка Fast USB charge, Swap и zram, гибкие возможности разгона CPU и GPU. Одно из лучших ядер. Настраивается с помощью с помощью Trickster MOD.
  • Matr1x (http://goo.gl/FQLBI , goo.gl/ZcyvA) - ядро для Nexus S и Nexus 4. Простое и неперегруженное ядро. Поддержка разгона CPU и GPU, GammaControl, Fast USB Charge, Sweep2wake, планировщики I/O: SIO, ROW и FIOPS. Твики производительности. Настраивается с помощью Trickster MOD.
  • Bricked-Kernel (http://goo.gl/kd5F4 , goo.gl/eZkAV) - простое и неперегруженное ядро для Nexus 4 и HTC One X. Оптимизации для Snapdragon S4 и NVIDIA Tegra 3, переработанный режим энергосбережения для Tegra 3, возможность разгона, алгоритм энергосбережения: тюнингованный OnDemand (доступен и Interactive).
  • SiyahKernel - ядро для Galaxy S II и S III. Гибкие возможности разгона, автоматическая калибровка батареи, улучшенный драйвер сенсорного экрана, алгоритмы энергосбережения: smartassV2 и lulzactiveV2, планировщики I/O: noop, deadline, CFQ, BFQV3r2 (по умолчанию), V(R), SIO. Драйверы CIFS и NTFS (с автомонтированием). Конфигурируется с помощью ExTweaks.
  • franco.Kernel - ядро для Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One и One X.

Возможности ядра сильно разнятся от устройства к устройству, поэтому подробности придется смотреть на месте. Тем не менее, прошивая это ядро, ты получишь возможность разгона, тюнинга драйверов, отличную производительность, а также поддержку различных алгоритмов энергосбережения и планировщиков. По сути, ядро включает в себя почти все описанные в статье твики. Считается одним из лучших доступных ядер. Имеется приложение для автоматического обновления franko.Kernel Updater. Конфигурировать можно с помощью Trickster MOD.

Как установить?

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

Выводы

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

Программа для управления частотой процессора на устройстве Андроид с целью увеличения производительности или увеличения времени работы от батареи.
Программа не умеет (и не должна уметь) самостоятельно разгонять процессор, она только управляет им. Из особенностей стоит отметить поддержку профилей (при отключенном экране, при подключенной зарядке, при определенном % заряда батареи, разговоре по телефону). Программе для работы нужен root. Для того, чтобы вы могли двигать ползунки, особенно в большую сторону, необходимо кастомное ядро с разгоном. Оно может быть установлено как отдельно, так и при установки кастомной прошивки.
Какие доступны режимы и частоты в программе, зависит только от того ядра, что у вас стоит.

Предустановленные режимы работы процессора Set CPU (наличие или отсутствие зависит от ядра):

Interactive - интерактивный режим, гоняет частоту ЦП в реальном времени, почти всегда на полную производительность.
Smartass - режим, основанный на Interactive. Отличается более быстрым снижением частоты в простое, а также понижает частоту до минимума при выключенном экране.
Conservative - работает на самой возможно низкой частоте ЦП и повышает пошагово, при необходимости.
Userspace - позволяет изменять частоту ЦП, либо в ручном режиме, либо динамически, по усмотрению программного обеспечения.
Powersave - понижает частоту ЦП до минимально возможного уровня.
Ondemand - работает на самой возможно низкой частоте ЦП и повышает на максимальную по достижении значения загрузки ЦП - 100%.
Performance - устанавливает максимальное значение частоты ЦП, запрещая изменять значение частоты в сторону понижения.

Скачать программу SetCPU на Андроид вы можете по ссылке ниже.

Разработчик: MichaelHuang
Платформа: Android (зависит от устройства)
Язык интерфейса: Русский (RUS) - v3.0.9
Root: Обязателен
Состояние: Full






Top