Фрагментация Android

http://opensignal.com/reports/fragmentation-2013/
  • Перевод
Фрагментация – это и достоинство, и недостаток экосистемы Android. В сети достаточно много сравнений уровня API операционных систем Android и iOS. В этом статье мы исследуем степень фрагментации мобильной ОС от Google и проанализируем влияние фрагментации на разработчиков и пользователей.

Недостаток:

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

Достоинство:

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

ФРАГМЕНТАЦИЯ УСТРОЙСТВ




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

ФРАГМЕНТАЦИЯ БРЕНДОВ




Аналогичный вид по брендам, мы можем увидеть, какую долю рынка имеет каждый производитель устройств, очевидно Samsung вырвался вперед. Рассчитав процентные доли рынка по нескольким производителям девайсов из топа, видим, что Samsung доминирует с долей 47,5%, Sony-Ericsson находится на втором месте и имеет менее чем шестую часть доли Samsung – 6,5%. Некоторые бренды, объединенные в одну компанию, на диаграмме имеют разные доли, то есть Moto и Motorola – это одна компания и HTC показана разными долями по регионам. Но даже если их объединить, Motorola имеет только 4,2% рынка, а HTC – менее 3,9%.

ФРАГМЕНТАЦИЯ ВЕРСИЙ ОС ANDROID




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

СРАВНЕНИЕ С IOS




Разнообразные фрагментации Android обычно сравниваются с iOS. Две круговые диаграммы показывают очевидные различия во фрагментациях API между двумя конкурирующими операционными системами.

РАЗМЕРЫ ЭКРАНОВ


Ключ к успеху любого приложения – это корректный пользовательский интерфейс, и у Android есть две основные проблемы для разработчиков касательно UI. Первая, бренды имеют тенденцию производить собственные системные UI (например, Touchwhizz для Samsung и HTC Sense), которые могут поменять вид многих стандартных элементов. Вторая, нет какой-то другой платформы для смартфонов, которая могла бы похвастаться таким быстрым увеличением размеров экранов. Как помочь преодолеть эти сложности, описано в статье 40 советов для оптимизации Android приложения. На графике ниже видно различные физические размеры экранов Android телефонов, с более темной линией – наиболее популярные смартфоны.



Очень сложно создать верстку макетов, которые хорошо работают на всех этих экранах. Когда как iPod-touch, iPhone и iPad имеют только 4 физических размеров экрана – отчасти из-за тенденции Apple удваивать плотность пикселей увеличивая разрешение в четыре раза (например, iPad 2 -> iPad 3) сохраняя при этом физический размер экрана. График ниже показывает фрагментацию размеров экранов iOS, сравните с Android.



ВЫВОДЫ


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

Фрагментация географически расширяет рынок Android – она не ограничивается лишь рассеиванием устройств и ОС. Она также важна для понимания, какие устройства в настоящий момент актуальны. Какие то девайсы могут быть актуальны для одного региона, но в другом не популярны, разработчикам нужно учитывать различия в производительности сети в разных регионах при разработке приложений. Другой фактор – это срок жизни батареи; когда в настоящий момент срок жизни батареи вполне приемлем, то в будущем ее может не хватать. Важно помнить, что не достаточно делить приложения только лишь по устройствам.

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

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

А какая версия Android на вашем устройстве?
Поделиться публикацией

Похожие публикации

Комментарии 48
    +4
    Про 4.3 в голосовании забыли
      +1
      Спасибо добавил
    +28
    Чекбоксы больше бы подошли. Ибо у многих по нескольку устройств с разными версиями андроида.
      +8
      А за что вы человека минусуете? У меня вот несколько устройств с разными версиями и теперь я не знаю как проголосовать…
        +2
        я не минусовал, щас уже не поправить на чекбоксы
      +7
      btw на секунду вылез баг хабра (после обновления страницы исчез)
      см 2й вариант ответа
      image

        +17
        Графики хорошие, но не согласен с большинством выводов.
        Это не такие большие проблемы для разработчиков (говорю как разработчик), особенно это касается физических размеров экрана и уж тем более фрагментация брендов. Просто разработка под Android подразумевает другой подход, чем под iOS, где в порядке вещей указывать размеры в пикселях или использовать не тянущиеся фоны страниц, которые поехали на iPhone 5 после изменений пропорций экрана. Просто при разработке под Android изначально лейауты делаются тянущимися, что не сильно увеличивает сложность, зато представляет пользоваться приложением без проблем на огромном числе устройств различных форм-факторов.
        В Android никто не пытается до пикселя высчитать размеры например ActionBar, или делать лейауты под каждый размер экрана.
        Даже не уверен что следует использовать тут термин «фрагментация», т.к. это изначальное свойство системы и ее преимущество.
        Кстати очень странно сравнивать физические размеры экрана, намного важнее их разрешение и плотность.

        Не понятно откуда взялся странный тезис про проблему с кастомными оболчками: «Первая, бренды имеют тенденцию производить собственные системные UI (например, Touchwhizz для Samsung и HTC Sense), которые могут поменять вид многих стандартных элементов».
        Максимум на что может повлиять измененный UI это на отображение уведомлений (и то это касается только Android 2.3), но в самом приложение подобные элементы напрямую не используются, а на Android > 4.0 это совсем не проблема, т.к. всегда есть стандартная тема Holo, вне зависимости от производителя и оболочки.

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

        Единственный важный момент может заключаться в фрагментации версии Android, но с учетом множества библиотек (включая Android Support Library, holoeverywhere и т; п;) этот момент далеко не так важен, как пару лет назад и большинство возможных проблем обратной совместимости легко решается.

        По моему вся статья больше похожа на спекуляции на статистике, хотя повторюсь, сама статистика довольно интересна. Большинство якобы серьезных проблем при разработке, на которые упирает статья, вовсе не проблемы, т.к. система изначально архитектурно заточена для разработки приложений под разные устройства и предоставляет инструменты для этого.
          0
          Статью я только перевел, это не мои тезисы, а так мне давно было интересно узнать доли версий на рынке, чтобы понять какое API использовать для своего проекта. Спасибо за замечания.
            –2
            А что вы подразумеваете под «понять какое API использовать для своего проекта»?
            Всегда используется последняя версия API, просто оставляя обратную совместимость, пусть даже с урезанным функционалом. Например сейчас Android 2.1 можно уже не поддерживать, там всего 1.5% пользователей и он не поддерижвает новый API карт и in-app billing v3, но если вы не используете ни то, ни другое, то оставить для него обратную совместимость не проблема.
              0
              так для этого есть официальная статистика, которая довольно часто обновляется.
                –1
                Она международная и общая. Могу предположить, что опрос на хабре нацелен на оценку фрагментированности андроидов среди русскоговорящей и (даже без «или») айтишной аудитории. Может анализатор реестра РКН например :)
              0
              Согласен полностью. На мой взгляд про проблему фрагментации на андроид кричат либо за деньги, либо люди без абсолютного понимания предмета. Что-то я ни разу не слышал про проблему фрагментации на ПК. Все как-то берут и верстают страницы, без разглагольствования как это дико сложно, так как мониторы у всех разные.

              Кстати, скажите, а под IOS есть возможность писать «растягивающиеся» интерфейсы? Если есть, то почему каждые пару лет случается тупняк с приложениями на половина экрана и черными полосами?
                –1
                Я лично под iOS не пишу, но насколько я знаю возможность есть, но нет встроенных инструментов для этого, как например 9-patch или ресурсы для разных устройств.
                  0
                  То что вы перечислили есть.
                    0
                    В iOS есть 9-patch из коробки?
                      0
                      Да. В iOS7 добавили еще автоматическое определение областей.
                  +1
                  Вы не делали игры под ПК, вот там фрагментация доставляет дикую головную боль. Уверен что и разработка 3Д под Андроид тоже то еще удовольствие, хотя бы тем небольшим примером, что каждый производитель GPU поддерживает какой-то свой формат сжатых текстур.

                  Про растягивающиеся интерфейсы — такое есть в iOS конечно. Просто это еще совсем недавно не было нужно, т.к. по сути был только один вариант для телефона, и один для планшета. Это позволяло интерфейс создавать с идеальной по-пиксельной точностью. Сейчас у телефонов два варианта разрешения, что не добавило сложности, но интерфейс даже древних приложений обычно растягивается нормально без изменений.
                    0
                    Не могу с вами согласиться. Головная боль от производителей GPU не больше, чем от фрагментации ОС. Я бы даже сказал что производители GPU гораздо жестче придерживаются спецификации API, нежели производители ОС. Здесь основные проблемы — интелы, потому что много чего не поддерживают, а то что поддерживают — делают это так медленно, что по неволе думаешь «лучше бы не поддерживали». ATI раньше часто имели проблемы с драйверами, в особенности для новых видеокарт, но на сегодняшний день этой проблемы уже практически нет. И наконец Matrox-ы — вот эти звери брыкаются очень сильно, но для разработчика игр данной картой можно пренебречь.
                      0
                      Рад что ситуация изменилась. Я застал еще времена, когда в OpenGL расширения для шейдеров были разные у Ati и Nvidia, плюс разные возможности. ARB расширения еще не было, но и его появление не всегда спасало. С выходом OpenGL 2 стало лучше конечно. Это просто пример того, как собственные спецификации производителей усложняют жизнь разработчикам Для Андроида тут пример — свои форматы сжатых текстур у разных производителей.
                  +1
                  Просто при разработке под Android изначально лейауты делаются тянущимися

                  Тянущийся лэйаут это примитивная адаптация под разные размеры. Хочется видеть действительно адаптивные дизайны. Скажем на 3" экране видеть несколько табов с настройками, а на 10" — все на одном экране.

                  Кстати очень странно сравнивать физические размеры экрана, намного важнее их разрешение и плотность.
                  При плотности больше 100 dpi лично для меня, как для пользователя, важны прежде всего физические размеры контролов (чтобы не промахиваться пальцем) и шрифтов. По крайней мере в случае ручных девайсов, которыми пользуюсь на плюс-минус постоянном расстоянии от глаз, в то время как монитор десктопа может быть и в нескольких метров от них.
                    0
                    Адаптивный дизайн конечно важен и он поддерживается даже из коробки например через ActionBar. Тут конечно проблема больше, требуется больше работы для оптимизации например под планшеты.

                    Физические размеры контролов может контролировать производитель устройства просто меняя такой софтварный параметр как размеры экрана в dpi, которые и следует использовать в своем коде. А еще производитель устройства может указать sp, т.е. относительный размер шрифта.
                    Соответсвено производитель например тв приставки может установить такие размеры в конфиге системы, что бы контролы и весь интерфейс был крупнее. Поэтому это не проблема, если приложение сделано нормально, без привязки к пикселам,
                      0
                      Давайте сойдемся на том, что важны параметры: физический размер экрана и расстояние до пользователя, проще говоря, угловые размеры экрана. А плотность пикселей на физический дюйм имеет значение, только если она принимает совсем неприличные значения (грубо: больше угловой минуты — средней разрешающей способности человеческого глаза). А если приложение заточено под смартфоны и планшеты (а не под телевизоры, очки, проекторы, вживляемые в глаз экраны и т. п.), то есть под более-менее постоянное расстояние до глаз (где-то от локтя до кончика пальцев — провел натурный эксперимент :), то размер контрола, шрифта и т. д. вполне можно задавать физическими единицами.
                        0
                        плотность пикселей на физический дюйм имеет значение, только если она принимает совсем неприличные значения

                        Не соглашусь, т.к. разница в плотности пикселей только для телефонов в данный момент может отличаться в 3 и более раз. Да и физический размер экрана телефона может отличается в 2 раза.
                        Задать например размер шрифта в пикселах — прямой путь к нечитабельным шрифтам в том или ином случае.
                  +9
                  Требую такую же картинку для «фрагментации» платформы PC. Включая соотношения сторон и разрешения мониторов.
                    0
                    Она всётаки не дотянет до картинки фрагментации пользователей. Включая уровень intelекта и размер бюста.
                      +2
                      Мне кажется, что вариация размера бюста меньшая, чем разрешений. По крайней мере я с трудом себе представляю эквивалентное соотношению 640(x480) к 5120 x 1440 (соотношение 1:8, для бюста это экивалент (при минимуме в 40см) 3.2 метра).
                      0
                      Можно глянь статистику Steam, но думаю будет ожидаемый перевес в сторону «играющих», и явно офисные машинки в неё не входят.
                      store.steampowered.com/hwsurvey?l=russian
                      +1
                        0
                        Заметил довольно сильное расхождение в статистике версий Android по сравнению с нашей собственной статистикой и официальной статистикой — developer.android.com/about/dashboards/index.html
                        Наши данные близки к официальным, и расходятся с теми, что указаны в статье. Очень инетересно узнать откда данные и их структура.
                          0
                          Надо было сделать «чекбоксовую» голосовалку — у меня Nexus на 4.3 и LG на 2.3.3.
                            0
                            Выше автор написал, что уже не изменишь голосовалку на чекбоксы habrahabr.ru/post/188738/#comment_6555836
                              0
                              Простое правило: нужно всегда ставить чекбоксы. Не помню, чтобы кто-то писал «я хотел проголосовать всего за один пункт, а голосовалка позволяет отметить три».
                                0
                                Не всегда. Некоторые вопросы прямо подразумевают один ответ. Хотя это не тот случай.
                            +1
                            Мне непонятен график фрагментации версий ОС, точнее, принцип построения белой линии на нём (которая показывает рыночную долю топовой версии ОС). В моём понимании с выходом очередной версии андроида этот график должен резко падать в ноль, после чего постепенно расти вплоть до выхода очередной версии.
                              +1
                              Тоже непонятно.
                              В оригинале там «The white line shows the market share of the leading API level at any time», то есть доля рынка самой популярной(?) версии API, а не самой свежей.
                                0
                                Из этого графика в принципе можно понять, что «топовый» тут — по популярности. Например вышел 2.3.3-2.3.7, топовый в то время 2.2 начал падать, потом 2.2 и 2.3.3-2.3.7 сровнялись, затем 2.3.3-2.3.7 растет до какого-то момента, пока у него не начинает отбирать долю рынка 4.х. Как-то так.
                                0
                                Это график доли самой популярной версии ОС в каждый момент времени, а не самой последней версии ОС.
                                  0
                                  Трудности перевода
                                0
                                ФРАГМЕНТАЦИЯ БРЕНДОВ
                                Второй блок SEMO или SEMC — это что значит?
                                Спасибо.
                                  0
                                  Sony Ericsson Mobile Communications
                                  0
                                  Хорошая статья!
                                  Добавили бы еще версию API (хотя бы в опрос), а то почти два десятка версий сложно в уме соотносить.
                                    0
                                    Почему в опросе нет варианта «У меня нет устройств на Android»?
                                      +1
                                      Воздержаться
                                        0
                                        Кнопка «Воздержаться» — для тех, кто не хочет высказывать своё мнение вообще. Это нарушает статистику.
                                          +1
                                          В данном опросе статистику использования версий Андроида нарушит ответ «У меня нет устройств на Android».
                                      0
                                      Xperia U четвертая по популярности среди SE, вышла в 2012 году, но Сони не делает на неё даже 4.1.
                                        0
                                        Возобновляю голосование, прошу обновить ваш голос

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

                                        Самое читаемое