Обзор ядер для android

Обзор особенностей ядра Андроида

“А я… карбюратор промываю!”
Анекдот

В детском садике мы с единомышленниками препарировали кузнечиков в надежде разобраться в их строении. В школе распаивали радиоприёмник “Россия”. В институте дошла очередь до автомобилей, гайки которых были многократно переставлены. Интересы поменялись, но желание “разбирать” иногда просыпается, и сегодня оно направлено на Андроид.

Сколько раз вас выручало наличие исходников Андроида? Меня — уже не счесть. Андроид — открытый проект, но, к сожалению, у нас есть возможность только читать; править код Андроида, не будучи сотрудником Google, практически невозможно. Погрустим над этим моментом и загрузим репозиторий. Как это сделать, отлично описано на официальном сайте.

Общая архитектура

Архитектуру Андроида можно схематично изобразить так:

Оригинальная схема не содержит информации об особенностях ядра и не акцентирует внимание на Binder-е и системных сервисах. А ведь Binder является “клеем”, связывающим все компоненты системы.

Как правило, в книгах описывается верхний левый синий прямоугольник, то есть API, которое доступно разработчику прикладных приложений. Нас же интересует всё, что ниже. Сегодня мы рассмотрим только ядро.

Ядро — центральная часть любого дистрибутива, называемого “Линукс”. Несмотря на доступность “чистого” ядра, многие разработчики (Ubuntu, Fedora, SuSe и т.д.) добавляют к нему свои патчи перед включением в дистрибутив. Андроид идёт той же дорогой, только ценой потери прямой совместимости: на “чистом” ядре он не заведётся. В настоящее время есть намерения включить “андроидизмы” в основную версию ядра, в 2011 году Линус Торвальдс давал на этот процесс 4-5 лет. Успех уже достигнут в рамках включения механизма wakelocks в версии ядра 3.5.

Рассмотрим “андроидизмы” более подробно.

История данного механизма эпична, потянет на сборник статей “Путь wakelock-ов в Линукс”: их обсуждение заняло порядка 2000 писем в рассылке LKML.

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

На телефонах требовался другой механизм: основное состояние системы — “спячка”, выход из него осуществляется только в случаях необходимости. Таким образом, система может уснуть, даже если какое-то приложение проявляет активность. В Андроиде был реализован механизм wakelock-ов: если приложение (или драйвер) выполняет что-то важное, что должно дойти до логического завершения, оно “захватывает” wakelock, предотвращая засыпание устройства.

Попытки портирования механизма wakelock-ов в ядро вызвали сопротивление многих разработчиков. Программисты Андроида решали конкретную проблему, решением которой стал определённый механизм. Условия задачи были весьма узки. Целевая платформа — ARM, поэтому использовались её особенности: ARM-процессоры изначально предполагают частую смену режимов работы “сна” и “бодрствования”, в отличие от x86. В Андроиде приложения общаются с системой управления питанием через PowerManager, а что делать клиентским Линукс-приложениям?

Разработчики Андроида даже не пытались найти общее решение “на будущее”, которое потом без проблем бы вливалось в основное ядро, не консультировались по этой проблеме с сообществом ядра Линукс. Можно ли их за это винить? Несмотря на все проблемы и обсуждения, как упоминалось выше, в ядре появилось API с идентичной функциональностью autosleep.

Программистам приложений под Андроид довольно редко приходится сталкиваться с wakelock-ами, так как платформа и драйверы обрабатывают возложенные на них обязательства с учётом “спящего” режима. Тем не менее, вмешаться в этот процесс поможет знакомый PowerManager. Кстати, автору приходит в голову только один сценарий: не дать телефону уснуть при запуске сервиса из BroadcastReceiver-а, что решается вспомогательным классом из Android Support Library WakefulBroadcastReceiver.

Low Memory Killer

В стандартном ядре Линукса есть Out of Memory Killer, который на основании параметра badness определяет убиваемый процесс:

badness_for_task = total_vm_for_task / (sqrt(cpu_time_in_seconds) *
sqrt(sqrt(cpu_time_in_minutes)))

Таким образом, чем больше процесс потребляет памяти и чем меньше живёт, тем меньше ему повезёт.

Все программисты, читавшие документацию или проходившие собеседования, знают, что, во-первых, процесс может быть “убит” и при наличии свободных ресурсов, во-вторых, кандидат на вытеснение выбирается по другим критериям: наличие “живых” Андроид-компонент, видимость пользователю и так далее.

Механизм довольно простой: каждому процессу присваивается приоритет от -17 до 16, при этом чем выше приоритет, тем выше вероятность убивания процесса, и, в зависимости от количества свободной памяти, выбирается приоритет, начиная с которого процессы будут завершены. Приоритеты описаны в ProcessList.java. Занимательно, что приоритет приложения домашнего экрана HOME_APP_ADJ довольно высок, а я-то думал: почему он постоянно перезапускается?

Массивы mOomAdj и mOomMinFreeLow/mOomMinFreeHigh как раз задают правила “когда что очистить”:

Таким образом, приложение домашнего экрана вытесняется при остатке свободной памяти в 73728 КБ на телефоне с экраном 1280×800 и ОЗУ в 700 МБ.
ProcessList передаёт соответствующие значения в ядро, что можно видеть в его методе updateOomLevels.

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

Binder, наряду с другими решениями (Files, Sigmals, Sockets, Pipes, Semaphores, Shared Memory и т.д.), решает задачу межпроцессного взаимодействия. Ноги у данного решения растут из проекта OpenBinder, разработчики которого в своё время перешли в команду Андроида.

Bionic (реализация libc) не использует System V IPC, так как в андроидовском окружении стандартные средства приведут к утечкам ресурсов.

Особенности:

  1. Управление потоками (мы все помним, что сервис, поддерживающий AIDL, должен работать в многопоточном окружении). Максимальное число потоков — 15 (ProcessState.c, метод open_driver), поэтому не стоит блокировать Binder-потоки в большом количестве без лишней необходимости.
  2. Механизм информирования о смерти процесса, держащего объект Binder “Link to Death”. Например, через него Window Manager узнаёт о смерти приложения и удаляет связанные с ним окна. Также LocationManager при смерти всех своих слушателей перестаёт опрашивать GPS-приёмник. Lowmemorykiller доволен. 🙂
  3. 2 режима вызова: блокирующий и неблокирующий (oneway). В первом случае вызывающий поток блокируется и ждёт отработки метода в потоке процесса-обработчика. Программисты просто вызывают методы через точку, взаимодействие потоков берёт на себя платформа.
  4. Передача UID и PID для безопасности. Через них системные сервисы определяют, есть ли у вызывающего процесса права совершать запрашиваемые действия.
  5. Для Java-программистов — средства создания Proxy и Stub-ов для конвертирования вызовов Java-методов в транзакции Binder-а.

Рассмотрим как это работает на примере LocationManager-а.

Когда мы хотим получить информацию о GPS, происходит следующее:

  1. Наше приложение вызывает соответствующий метод у LocationManager-а.
  2. LocationManager делегирует вызов прокси-объекту, преобразующему Java-методы и объекты в Binder-транзакцию (прокси-объектом у LocationManager-а является mService).
  3. Транзакция посылается драйверу ядра, который перенаправляет её LocationManagerService-у, отнаследованному от .LocationManager.Stub.
  4. .LocationManager.Stub делает обратные действия: разворачивает транзакцию в вызов Java-метода.
  5. .LocationManagerService обрабатывает запрос (используя, например, GPS-драйвер).
  6. Stub-объект пакует ответ в транзакцию, и процесс идёт в обратном направлении.
  7. Драйвер пересылает ответ обратно.
  8. Прокси-объект распаковывает результат вызова метода в Java-объекты.

Как видим, за вызовом методов системных сервисов скрывается довольно большая логика.

Anonymous Shared Memory (ashmem) — механизм разделяемой памяти. В Линуксе, как правило, данный механизм реализован через POSIX SHM. Разработчики Андроида сочли его недостаточно защищённым, что могло сыграть на руку вредоносному ПО. Особенностями ashmem-а являются счётчик ссылок, при обнулении которого разделяемая память может быть освобождена (например, память освобождается при завершении всех процессов, использующих её), и сокращение разделяемого региона при нехватке памяти в системе.

Ярким примером использования ashmem-а является процесс zygote, в котором загружается стартовая версия Dalvik VM с загруженными базовыми классами и ресурсами, а остальные приложения просто ссылаются на эту память.

Binder имеет ограничение на размер транзакции в 1МБ (иначе будет выброшено исключение TransactionTooLargeException). Если нам надо передать из одного процесса в другой большой объём данных, можно как раз воспользоваться Ashmem-ом: создать MemoryFile и передать дескриптор файла в другой процесс.

Обычные дистрибутивы, как правило, используют две системы логирования: лог ядра, доступный через команду dmesg, и системные логи, располагающиеся обычно в директории /var/log.

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

На диаграмме представлена общая система логирования Андроида. Драйвер логирования предоставляет доступ к каждому буферу через /dev/log/*. Приложения имеют доступ к ним не напрямую, а через библиотеку liblog. С библиотекой liblog общаются классы Log, Slog и EventLog. Команда adb logcat показывает содержимое буфера “main”.

В данной заметке мы кратко рассмотрели некоторые особенности Андроида как Линукс-системы. За скобками остались некоторые другие части (pmem, RAM console и т.д.), а также такие важные аспекты платформы в целом, как System Service, процесс запуска системы и другие. Если данная тема будет интересна, в следующих статьях мы рассмотрим и их.

Источник

Гид покупателя. Какой процессор выбрать в смартфоне или планшете? И как…

Споры о том, какой процессор лучше, AMD или Intel, какое-то время назад почти ушли в прошлое, стали похожи на вялое переругивание семейной пары, прожившей в браке уже несколько десятилетий. Все доводы известны каждой стороне, правда у всех своя, и доказать превосходство своего выбора почти не представляется возможным. В мобильных устройствах мы наблюдаем большую конкуренцию и разнообразие процессоров/чипсетов, что вызывает ровно такие же баталии, как тема Intel vs AMD в прошлом десятилетии. Но качество таких обсуждений редко способно заинтересовать, так как сводится к банальным и очень эмоциональным оценкам: твой процессор Х – отстой, а вот мой очень хорош. Подсознательно ждешь, что кто-то вклинится в этот незамутненный разговор и добавит «он лучше, потому что…». Но такого не происходит, а вместо этого опять только эмоции и информационный шум, в котором приводятся виртуальные попугаи из AnTuTu, которые, по мнению спорщиков, способны доказать чье-то превосходство.

Читайте также:  Можно ли заряжать айпад зарядкой от андроида

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

Процессор, чипсет, SoC – разбираемся в терминах

Часто слово «процессор» воспринимается, как синоним чипсета, используемого в устройстве. Это не совсем верно, так как большинство сегодняшних процессоров являются частью SoC (System on Chip), то есть это интегрированные решения, в которых, помимо процессора, есть различные радиомодули, дополнительные DSP, отвечающие за обработку звука, изображений, ориентацию в пространстве и так далее. Создание таких интегрированных решений было необходимостью для уменьшения энергопотребления, простоты разработки устройств, их универсальности. В прошлом необходимость собирать из отдельных блоков-микросхем устройство приводило к его большому энергопотреблению, а также зачастую компоненты могли конфликтовать, что требовало большого времени на доработку со стороны производителя устройства. Интегрированные решения позволяют избежать этих проблем, стоимость разработки ложится на плечи поставщика процессора, а производители устройств получают готовое и универсальное решение.

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

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

Несложно подсчитать, что внутри Tegra 2 установлено целых 8 независимых процессоров – один для кодирования видео, один для декодирования видео, аудиопроцессор, графический сопроцессор, процессор, отвечающий за обработку изображений (как правило, работает с камерой, но не только), процессор ARM7 для обслуживания рутинных операций в устройстве, два ARM9 процессора. Когда мы обсуждаем число ядер в процессорах наших мобильных устройств, мы, как правило, говорим об основных вычислительных процессорах, в моем примере это ARM9-процессоры, каждый из которых имеет 2 ядра. Для демонстрации того, как устроены современные чипсеты, я специально взял «старый» чипсет Tegra 2, так как он прекрасно описывает внутреннее устройство SoC.

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

Другой момент – это технологический процесс, по которому выполнен процессор. В настоящее время большинство решений выпускается по норме 32 нм, появляются первые устройства на процессорах, выполненных по норме 20 нм. Чем меньше значение, тем лучше. Здесь технологическая норма описывает толщину токопроводящих дорожек (если совсем грубо и понятно описывать этот момент), чем меньше толщина, тем проще проходит сигнал, меньше энергопотребление, так как сопротивление также меньше, а как следствие, на тех же частотах выделяется меньше энергии. Технологическую гонку мы наблюдали на процессорах для настольных компьютеров, здесь видим ее продолжение.

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

Что лучше – 2-, 4- или 8-ядерный процессор?

Вопрос вынесенный в заголовок главки, не имеет однозначного ответа для тех, кто подходит к теме вдумчиво. Для большинства продавцов электроники ответ, напротив, очевиден, и они несут его в массы, причем делают это по всему миру. Чем больше цифра и количество ядер, тем лучше процессор. В их логике 2-ядерный процессор всегда хуже, чем 4-ядерный, а 8-ядерный заведомо лучше и мощнее первых двух. Почему они так делают, вполне понятно, им надо продавать гигабайты, дюймы, мАч и другие количественные характеристики. Логика таких продаж понятна и донельзя затаскана – чем больше цифра, тем лучше. К слову сказать, это объясняет, почему вы никогда не услышите от продавца, что процессор выполнен не по 32 нм норме, а по 20 нм, и поэтому он лучше. Привычка к игре в цифры не позволяет так говорить, единственное исключение – это толщина (как вариант, размер или вес) устройства.

Первое, что стоит знать и выучить наизусть – количество ядер и частота процессора не являются определяющим фактором в производительности устройства, несмотря на то, что это звучит, как ересь. Приведу такой пример – в Apple создают собственные варианты архитектуры ARM, которая является доминирующей на мобильном рынке. Например, 64-битный процессор Apple A8, который установлен в iPhone 6, последнем поколении iPad, у него всего два ядра и максимальная тактовая частота 1.4 ГГц. Для сравнения мы можем взять какой-нибудь китайский телефон с процессором Qualcomm Snapdragon 800, у которого частота до 1.7 ГГц на ядро, а всего ядер четыре. Прямое сравнение в лоб должно сказать нам, что тот же iPhone 6 должен проиграть по производительности китайскому телефону, у которого в довершение всего еще и 2 ГБ оперативной памяти против 1 ГБ в iPhone. Выигрыш на бумаге по всем параметрам.

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

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

А производительность браузера Blackberry на BB10 в html5 лучшая на рынке, результаты разных платформ можно посмотреть вот здесь.

И теперь барабанная дробь, большая часть устройств от Blackberry работает на достаточно старых по меркам рынка и «медленных» процессорах от Qualcomm. Это еще одно объяснение того, что производительность платформы напрямую влияет на скорость ее работы, прорисовки интерфейса и другие параметры.

Напрямую сравнивать производительность различных платформ можно только засекая время, которое уходит на выполнение стандартных задач – например, как долго загружается телефонная книга с таким-то количество контактов, как быстро отрисовывается страница в браузере, запускается игра и так далее. Но таких независимых тестов на постоянной основе не существует, изредка их проводят те или иные издания. Многие пользователи вывели на уровень отраслевого стандарта тест AnTuTu, который применяют для оценки производительности устройств, и об этом подробно поговорим в следующем разделе. Но перед этим хочу сказать, что сравнивать количество ядер, их частоту, то, по какому процессу они выполнены, можно и нужно в пределах одной платформы. Например, если у вас есть устройство на Android с 2-ядерным процессором, то устройство с 4-ядерным процессором обеспечит лучшую производительность. Но сравнивать Windows Phone, iPhone и Android, да и любую иную систему, не стоит, такое сравнение лишено смысла.

Вред и польза AnTuTu – народная забава в виртуальных попугаях

Людям присуща психологическая черта, они хотят точно знать, что приобрели хорошее устройство, и для этого им нужна «объективная» оценка. Как вы знаете, цифры не умеют лгать – чем выше цифра, тем лучше. В жизни есть много аналогий, сложно не согласиться с тем, что чем выше зарплата, тем больше разных возможностей ее потратить. Чем больше ядер, тем… Стоп, но это мы уже обсудили выше. Любая аналогия страдает однобокостью, и количество виртуальных попугаев в AnTuTu – это не показатель реальной производительности системы.

Читайте также:  Андроид навигатор для мотоцикла

Почему я называю результаты измерения производительности в AnTuTu или любой иной программе виртуальными попугаями? Ответ кроется в том, как работают современные устройства, в их архитектуре. В большинстве тестов производительности пытаются измерить максимальные возможности чипсета и соответственно процессора. Некоторые параметры объективны (скорость записи в память, работа процессора по обсчету чисел), а некоторые оторваны от реальности (производительность 3D как пример). Но ведь итоговое число, которое мы получаем, включает в себя как те параметры, что реальны, так и те, что весьма относительны и не могут напрямую характеризовать систему. Вот и получаются виртуальные попугаи. Особенно это хорошо заметно на флагманах от Samsung 2012 года, максимальная производительность в попугаях, но заметные притормаживания в оболочке TouchWiz, если у вас много данных, например, в телефонной книге. С одной стороны, максимальные числа в тесте, с другой – производительность стандартного UI, которая была далека от идеальной. Многие не задумываются об этом, но одновременно эти два явления в реальном мире существовать не могут. Либо максимальные числа в тесте и беспроблемная работа интерфейса, либо тест не показывает настоящей картины.

Есть еще один важный момент – архитектура современных процессоров не подразумевает возможности работы на максимальной мощности в течение всего времени. Тогда это приводило бы к тому, что смартфон, проработав несколько часов, просто завершал бы работу в отсутствие энергии. Частота в процессорах изменяется динамически, в зависимости от задач и нагрузки. Один из скандалов, связанных с AnTuTu, произошел в 2013 году, когда обнаружили, что смартфоны Samsung, в частности, Galaxy S4, «обманывают» тест. Удивительно, но та история была одной из немногих возможностей объяснить широкой публике, как именно работают современные устройства, вместо этого все кинулись обсуждать, как плохо себя ведет компания.

Итак, скандал был связан с тем, что для того, чтобы получить более высокие результаты, программисты определяли, какой софт запущен, и далее поднимали частоту графического сопроцессора с 480 до 532 МГц. И получали высокие результаты. Помимо AnTuTu, среди приложений, которые пользовались таким преимуществом, были фирменный браузер от Samsung, приложение «Камера» и ряд системных утилит. Для большинства сторонних программ повышенная частота графического сопроцессора была недоступна. Честно это или нет? Смотря как судить, ведь все процессоры на рынке работают ровно так же, никто не может гарантировать, что в какой-то определенной программе вы получите максимальную производительность.

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

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

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

Есть еще один момент, который многих смущает. В 2013 году был скандал относительно того, что AnTuTu оптимизирован для процессоров Intel Atom, они показывали лучшие результаты в тестах. Это было связано с оптимизацией компилятора – фактически получалось так, что получить реальное сравнение устройств было нельзя, они заведомо были в разных условиях. То же самое можно сказать о тесте AnTuTu на iOS, его результаты часто пытаются сравнить с Android. Это невозможно, так как итоговые результаты не являются сквозными, усредненными для всех платформ, они позволяют сравнивать устройства только в пределах одной платформы.

Некоторые примеры соревнования устройств в AnTuTu

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

Смотрим на Note 4 в Exynos-версии.

А вот так выглядит производительность iPhone 6 Plus на другой операционной системе, с другими аппаратными характеристиками, но в той же программе. Идентичны? Не думаю – что-то лучше у одного аппарата, что-то у другого.

Давайте взглянем на Meizu MX4, который является одним из фаворитов в AnTuTtu. Здесь стоит 8-ядерный процессор MediaTek MT6595.

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

Объем оперативной памяти, разные платформы и производители чипсетов

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

В бюджетных устройствах на Android объем оперативной памяти может составлять 256 Мб, такие устройства не стоит даже рассматривать как вариант для покупки. Очень бюджетные, очень медленные. Узким местом становится именно память. При памяти в 512 МБ уже можно жить, особенно на старых версиях Android, например, 2.х. Но на версии 4.2.х этого недостаточно, хотелось бы больше. И это непосредственно сказывается на производительности, пусть и не в интерфейсе. На конец 2014 года можно считать нормальным объемом оперативной памяти для Android 4.2.x — от 1 ГБ, 4.4.х – от 2 ГБ. Для самых производительных решений это 3 Гб, стоит ориентироваться на это количество как своего рода идеал.

Часто меня уверяют в том, что Apple настолько велик, что способен обойти ограничения физического мира, и в 1 Гб оперативной памяти можно творить все, что угодно – те же игры на Android требуют большего объема. Это не так, отличается реализация игр, хотя внешне они могут быть похожи. Например, игра Fates на iPad с 1 Гб оперативной памяти стандартно пишет через 10-15 минут о том, что ей не хватает оперативной памяти.

Это еще одно подтверждение того, что оперативной памяти много не бывает, особенно если вы любите играть в красивые и подвижные игры.

Наверное, за скобки своего рассказа уберу такие платформы, как iPhone, Windows Phone, а также Blackberry. Причина заключается в том, что на них нет разнообразия аппаратных вариантов, используются процессоры и чипсеты от одних и тех же поставщиков. Да и устройства от одного производителя (в том числе это применимо к Windows Phone, где, кроме Lumia, уже почти никого нет). Поэтому выбор чипсета/процессора для этих платформ лишен смысла, вы покупаете в первую очередь само устройство – выбирая в нем дизайн, стоимость, функциональность. То, что под капотом устройства, отходит на второй план, вы от знания технических деталей не сможете почти ничего выгадать. Этот выбор ограничен продуктовой линейкой компании.

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

  1. Qualcomm – мировой лидер, создают ключевые технологии, например, LTE, чем и выигрывают во времени вывода своих продуктов на рынок, чипсеты довольно дорогие на фоне конкурентов, но пользуются признанием у потребителей;
  2. MediaTek – компания претендует на мировое лидерство, основная угроза благополучию Qualcomm. Создает свои решения, руководствуясь принципом оптимального соотношения цена/качество, зачастую известна бюджетными решениями, которые и создали основной костяк продаж;
  3. Samsung – продвигает линейку Exynos, которая является собственной разработкой, также как и у других, она базируется на архитектуре ARM. Важное отличие от первых двух компаний в том, что Samsung имеет собственные фабрики по производству процессоров, на которых выполняет заказы для Qualcomm, Apple и других. Как правило, компания запускает в своих флагманах новейшие чипсеты с последними разработками – это большая пропускная способность оперативной памяти, собственные процессоры для обработки изображений, звука и так далее;
  4. nVidia и линейка Tegra. Корни nVidia в игровом бизнесе, а также высокопроизводительной графике, поэтому компания ориентируется на игроков, а также производителей игр. Многие игры оптимизируются усилиями компании для собственной платформы (есть nVidia Tegra Zone в Play Market), что обеспечивает лучшую детализацию, производительность, но большинство этого не замечает в повседневной жизни. Если судить по распространенности чипсетов от nVidia, то они почти не востребованы на массовом рынке, играют свою роль в небольшой нише;
  5. Intel является процессорным гигантом для ПК, но в мобильном направлении почти неизвестен со своей линейкой Intel Atom. Неплохие процессоры, который отдают с доплатой, активным партнером является Lenovo, постоянно выпускающий смартфоны и планшеты на таких решениях. Есть еще ряд незначительных игроков, но говорить о широком распространении нельзя, равно как и о перспективах занять значительную долю рынка.
Читайте также:  Подключения андроида через точку доступа

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

Версия Android и производительности устройств

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

Почти половина всех Android-смартфонов производится китайскими компаниями, из них большая доля приходится на тех, кто не имеет прямых отношений с MediaTek, Qualcomm или другими поставщиками чипсетов. Это так называемые вторые руки, то есть компании, которые покупают чипсеты не напрямую. Из этого следует очень важный вывод – они не могут получить техническую поддержку, которая поможет решить их проблемы с драйверами, производительностью устройства и так далее. То есть со всеми проблемами они вынуждены справляться самостоятельно, что зачастую означает применение на практике метода «палочки, веревочки». И это объяснение, почему телефоны многих брендов второго эшелона (Prestgio, teXet и кучи других «производителей») не получают никогда обновлений версий Android. Они размещают заказы на разных фабриках, которые не имеют прямых взаимоотношений с поставщиками чипсетов. Зато цены ниже, что часто выгоднее.

Но даже при условии прямых взаимоотношений каждый производитель чипсетов делит своих партнеров на ключевых (их часто называют «альфа»), а также всех остальных. Ключевые партнеры получают быструю реакцию на запросы, решение проблем и так далее. Но даже они не могут получить поддержку старых продуктов, если не купили их многомиллионными тиражами. А это только очень крупные производители, такие, как Samsung, Sony, HTC, LG. Но не китайские производители небольшого размера.

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

Наконец, скажу очевидную вещь – версия Android влияет на производительность устройства, равно как и наличие собственной оболочки или ее отсутствие. В данный момент лучшую производительность и энергосбережение обеспечивает Android 5.x. Фактически, один и тот же аппарат на Android 5 и 4.4.4 имеет разную производительность, а также в первом случае работает на 20-30 процентов дольше. Это еще одно доказательство влияния операционной системы на производительность чипсета, ее оптимизации. И это также стоит принимать во внимание, когда вы выбираете устройство.

Восприятие разных марок чипсетов – кто лучше?

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

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

Например, давайте посмотрим на уже упоминавшийся Meizu MX4, в этом аппарате используется чипсет MediaTek MT6595 с восьмиядерным процессором, встроенным модемом LTE. Процессор построен на архитектуре ARM big.LITTLE, в ней 4 ядра «медленные» Cortex A7 с частотой до 1.7 ГГЦ, а 4 ядра «быстрые» Cortex A17 с частотой до 2.2 ГГЦ. На практике это очень стабильное решение, на нем запускаются все игры, что доступны сегодня на рынке, и никаких тормозов не наблюдается. То есть это решение одно из самых производительных, как по субъективным параметрам, так и по синтетических попугаям в тестах. При этом стоимость этого смартфона ниже почти в два раза, чем у аналогов, построенных на Qualcomm от именитых производителей, либо ниже на 20 процентов, чем у китайских смартфонов на аналогичных Qualcomm.

Как мне кажется, в качестве примера стоит приводить лучших, и это тот самый случай, когда совместная работа поставщика чипсета и производителя устройства дала очень хороший результат. В качестве примера аппарата из другого лагеря можно привести OnePlus One, в котором стоит Snapdragon 801, 3 Гб оперативной памяти. С точки зрения архитектуры процессора это решение менее выигрышно – 4 ядра, которые работают на частоте до 2.5 ГГц. То есть заведомый выигрыш архитектуры MediaTek, совмещающей «медленные» и «быстрые» процессоры, очевиден. Такой подход начала компания nVidia, которая представила первый смартфон с дополнительным «медленным» процессором для повседневных задач.

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

В качестве еще одного штриха скажу, что тот же Note 4 традиционно выпускается на версии чипсета от Qualcomm, а также собственной Exynos. В отличие от предыдущего года, где Qualcomm выигрывал по ряду параметров, сейчас все ровно наоборот – впереди Exynos: он быстрее, лучше работает камера, интерфейс отзывчивее, а время работы примерно одинаково. Так что и тут наступают на пятки Qualcomm, этим занимается не только MediaTek.

Заключительные слова

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

Очень важно понять, что производитель чипсета не является залогом того, что перед вами качественное устройство, которое вылизали и сделали стабильным. Многие китайские производители выбирают Qualcomm, чтобы подчеркнуть «качество», которого фактически нет. Но сложившиеся стереотипы говорят нам, что «плох» MediaTek, хотя обе компании выпускают однотипные продукты и в реальности технологически на текущем витке вполне сравнимы. В выборе устройства, если вы принимаете во внимание чипсет, стоит также отталкиваться от имени производителя устройства, истории его других моделей, обновлений ОС, стабильности работы и тому подобных параметров – они скажут вам намного больше, чем простые цифры из спецификаций. Будьте разумны в своем выборе, а также помните, что максимальная частота процессора не так уж важна, если вы собираетесь только смотреть странички в сети, не планируете играть в трехмерные игрушки с очень сложной графикой. Большую часть времени производительность мощного процессора будет простаивать, так, быть может, стоит выбирать одежку по росту? Не покупать нечто с запасом, тем более что буквально все игрушки и программы будут запускаться и идти на аппаратах со средними характеристиками как минимум, еще год. А если говорить о лучших характеристиках, то два года, а то и три.

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

Источник

Оцените статью