Фрагментация Android в графиках
Константин Иванов
Фрагментация одновременно является и силой, и слабостью экосистемы Android. С одной стороны, это настоящая головная боль для разработчиков, а с другой – залог широкого распространения. Устройства на Android обладают разными размерами и формой, различными размером экрана и производительностью. Более того, в одно и то же время сохраняют актуальность разные версии Android, и это еще один параметр фрагментации. В итоге мы получаем то, что создание приложения, которое работало бы на любом устройстве с любой версией Android, – дело затратное по силам и времени.
Несмотря на все проблемы, у фрагментации есть и положительные стороны для разработчиков и пользователей. Доступность дешевых Android-аппаратов, которые редко работают на самой последней версии, означает гораздо более широкое распространение, чем у iOS, а значит, и гораздо более широкую аудиторию у создателей приложений. Android успешно занимает нишу, которая освободилась с упадком Symbian. И здесь мы посмотрим, какой вид приобретает фрагментация Android по разным показателям, и увидим, что системе она скорее идет на пользу, нежели вредит. В общем и целом, Android в настоящее время является доминирующей ОС – как раз по причине фрагментации, а не вопреки ей.
Фрагментация по устройствам
Вот визуализация поразительного разнообразия устройств на Android, на которые скачивалось приложение OpenSignal в течение последней пары месяцев. Графика показывает, с чем приходится столкнуться разработчикам приложений: более 18 000 разнообразных устройств, на которых приложение может работать. Так что оптимизация становится сложной задачей. По сравнению с прошлым годом и 11 868 устройствами фрагментация выросла на 60% (18 796 в этом году). По сравнению с первым отчетом компании в 2012 г. фрагментация устройств выросла более чем в 4 раза (тогда отмечалось «всего лишь» 3 997 устройства на Android). Еще один способ увидеть, насколько важна для разработчиков фрагментация, – это посмотреть, какой процент рынка приходится на 10 ведущих устройств на этой ОС, поскольку разработчики, как правило, пользуются лишь немногими устройствами для тестирования своей продукции. В прошлом году десятка самых популярных устройств занимала 21% рынка, а в этом процент упал до 15, еще больше обесценив такое избирательное тестирование.
Фрагментация по маркам
Данная графика с точки зрения компании-производителя демонстрирует доминирование Samsung. На предыдущей графике было видно, что эта компания произвела 12 из 13 самых популярных устройств – становится понятно, почему ей принадлежит 43% рынка. Впрочем, Samsung демонстрирует определенный спад по сравнению с 47.5% в прошлом году. Второй идет Sony с 4.8%, показывая, насколько велик разрыв между первым и вторым местом.
Фрагментация по версиям Android
Фрагментация по устройствам – не единственная проблема, с которой сталкиваются разработчики. Система сама по себе фрагментирована очень сильно, и она будет двигаться только дальше в этом направлении. Эта графика демонстрирует стадии фрагментации Android по версиям и устойчивое снижение популярности каждой из них (белая линия указывает на всплески).
Фрагментация по ВВП на душу населения
Одной из сильных сторон фрагментации Android является свобода действий, которая предоставляется производителям устройств, чтобы те, в свою очередь, могли предложить потребителю устройство, точно отвечающее его потребностям. Данный фактор стал особенно важен, когда Android занял место устройств на Symbian от Nokia в менее экономически развитых странах. Фрагментация по API репрезентативна для Android: старые устройства используют старые версии OC, а с новыми работают хуже. График показывает соотношение ВВП на душу населения и 5 топовых API для Android на рынке (4 версии KitKat и 4.3.1 Jelly Bean), большее значение по оси Y означает меньший показатель фрагментации. Корреляция между двумя показателями очевидна, при этом из графика выбивается Катар c его высоким ВВП, который далеко не всегда отражает реальное материальное положение населения.
Этот график представляет отдельно фрагментацию для стран с ВВП на душу населения больше и меньше $20 000, и мы видим, насколько она различается. Создать приложение для экономически развитого рынка намного проще, поскольку у целевой аудитории больше продвинутых устройств на Android, имеющих новые версии OC. Около 35% устройств в более экономически развитых странах имеют версию KitKat, в менее развитых – около 12%.
Сравнение с iOS
Любая фрагментация Android часто показывается в сравнении с iOS. Эти две круговые диаграммы показывают фрагментацию API у двух конкурирующих OC.
Фрагментация по сенсорам
Этот график показывает развитие устройств на Android с точки зрения количества используемых сенсоров на примере линейки Galaxy S. Одно из интереснейших направлений развития – это устройства, которые способны собирать информацию об окружающем мире (в качестве примера можно привести погодную сеть Weather Signal). Серия смартфонов Galaxy демонстрирует, что производители добавляют все больше сложных сенсоров в свои устройства. График демонстрирует также и оборотную сторону явления – разработчики создают программы под определенные сенсоры (например, упомянутый погодный сервис использует датчики влажности и температуры), а те потом прекращают использовать, и это добавляет фрагментации разработчикам.
Фрагментация по размеру экрана
Ключ к успеху любого приложения – это правильное использование оболочки, и здесь Android ставит перед разработчиками две принципиальные проблемы. Первая – это стремление производителей кастомизировать стандартный интерфейс (примерами могут служить TouchWiz у Samsung или HTC Sense). И вторая – огромное многообразие размеров экрана у устройств на Android. Разработка схемы, которая адекватно работала бы на экранах разного размера – весьма сложная задача. В противоположность этому, устройства от Apple имеют всего четыре размера экрана по причине того, что в этой компании удваивают плотность пикселей и увеличивают разрешение в четыре раза, а экран оставляют тем же. График ниже показывает фрагментацию iOS по размеру экрана, которую легко сравнить с Android.
Немного о методологии
График фрагментации по устройствам показывает 18 796 типов устройств, к которым относятся 682 000 уникальных устройств, на которые было скачано наше приложение. Число устройств было взято тем же, что и в два предыдущих года, чтобы сравнение было репрезентативным.
График фрагментации по производителям основан на том же числе устройств, что и предыдущий.
График фрагментации по API основан на данных Google.
ВВП на душу населения по странам – данные МВФ, 2013 год.
Круговая диаграмма API iOS – по данным Apple.
График фрагментации по размерам экранов устройств на Android – по данным о 10 млн пользователей OpenSignal. График демонстрирует физические размеры экранов, а не размеры в пикселях. Изменение разрешения при сохранении того же размера экрана (как у iPad 3 по отношению к iPad 2) представляет меньшие трудности для разработчиков, нежели изменение физического размера.
Источник
Миф о фрагментации Android
В последнее время мы все чаще слышим о том, насколько фрагментированным стал рынок Андроид-устройств, как Гугл отдала контроль над Андроидом производителям устройств, и насколько кошмарно написание и тестирование приложений под ОС Андроид. Все это не соответствует действительности.
Чтобы понять, что именно сформировало такое мнение, рассмотрим первую диаграмму, размещенную в блоге компании TweetDeck. В рамках бета-теста приложения под Андроид, в перечислены сотни различных видов устройств, но, обратите внимание, что подавляющее большинство тестеров предпочли телефоны из топ-15.
Теперь посмотрим на вторую диаграмму в том же посте. На ней более 100 различных прошивок, но более половины тестеров используют родную прошивку Android 2.2, еще одна большая часть тестеров используют еще 4 наиболее популярные версии родной прошивки.
Заключение к первой диаграмме гласит: «С нашей точки зрения очень здорово отметить то, что наше приложение работает на таком широком спектре устройств и вариаций Андроид ОС». И не смотря на: «серьезные отличия в телефонах и версиях Андроид ОС, у всех все работает».
Фрагментация рынка Андроид-устройств не проблема для разработчиков ПО. С точки зрения программирования, если вы используете Android SDK, то обычно придерживаетесь Android и Google API примерно на 99,7% в вашей работе, выбирая минимальный уровень API, который вам нужен, и не беспокоясь о том, как это будет работать со скинами интерфейса, которые добавляют HTC, Samsung, Motorola и другие. Производители несут ответственность за то, чтобы их устройства поддерживали стандартные API, и делают это, что доказала TweedDeck с помощью 36427 активных бета-тестеров.
В редких случаях, вы можете захотеть написать приложение, которое использует нестандартные аппаратные возможности, доступ к которым отсутствует в Android или Google API, например задействовать двойную LED-вспышку на HTC Incredible в качестве фонарика. Обычно в таких случаях производители стараются добавить поддержку подобных приложений в конечном итоге. В случае с Incredible поддержка HTC Flashlight добавилась в обновлении Android 2.2.
Если вы захотите провести тестирование на каждом устройстве, которое поддерживает ваши минимальные спецификации API, вам не нужно иметь по экземпляру каждого из них. Если вы будете использовать Android Market, то можете протестировать все оборудование на реальных устройствах, выпуская бесплатные бета-версии, как сделала TweetDeck. Поверьте, пользователи не стесняются отчитываться о проблемах, если приложение не работает идеально на их устройстве, когда программа является бесплатной.
Если у вас закрытое приложение, вы можете захотеть дать пользователям узнать о том на каких устройствах прошло тестирование и какие из них поддерживаются, но вы не можете позволить им протестировать приложение самостоятельно на тех устройствах, которыми не располагаете сами. В таком случае вы сможете добавлять к списку поддерживаемых устройств только те, пользователи которых расскажут, что у них все хорошо. Для этого вы можете использовать анкеты для пользователей, оплачиваемые по принципам краудсорсинга.
На самом деле все не так сложно. Начните с крупнейшего в настоящее время целевого API Android 2.2, и пишите ваше приложение под него. Проведите внутреннее тестирование на трех телефонах на базе Android 2.2 по одному от HTC, Samsung, Motorola. Выпускайте релиз только для версии 2.2 и смотрите что скажут тестеры. Когда начнут выходить планшеты на базе Андроид, начните тестирование на них и изменяйте приложение, добавляя альтернативные макеты экранов при необходимости.
После чего вернитесь к предыдущим версиям Android и с помощью обходных путей заставьте все работать на версии 2.1. В официальном блоге Android есть несколько хороших методик для достижения этого. Затем снова протестируйте приложение на трех телефонах, после чего измените номер версии на меньший. Продолжайте это делать до достижения самой низшей версии.
Вы еще уверены, что фрагментация это не надуманная проблема? Тестирование приложений под Android гораздо проще оптимизации под различные версии ОС, версии браузеров и разрешения экрана, которые приходилось делать в последние 50 лет.
Источник
Фрагментация?
Когда я читаю про фрагментацию устройств на Андроиде, я мысленно киваю, соглашаясь с автором статьи. Когда я вижу тезисы о том, что фрагментация устройств мешает разработке ПО, то я недоуменно поднимаю брови. Но когда мне пытаются доказать, что фрагментация Андроида — это главная проблема этой платформы и главный минус для разработчиков мобильного ПО, я, откровенно говоря, начинаю смеяться. Простите, но это либо чисто маркетинговая намеренная чушь, либо совершеннейшее непонимание ситуации.
Представьте себе, что вы — производитель мебели. Вы работаете на рынке мебельной продукции, вы конкурируете с другими производителями, деля весь рынок на некие части. Ваша задача как предпринимателя — урвать как можно больший радиальный угол на круговой диаграмме с заглавием «Furniture market share». Пиксели этой диаграммы — это люди, которые покупают мебель. Это разные люди и они покупают разную мебель: начиная от неокрашенных брусчатых кроватей из Икеи за 2000 руб, и заканчивая диванами, обтянутыми кожей молодых гребнистых крокодилов c Каролинских островов, каждый из которых стоит как ваша квартира.
В каждом из этих ценовых сегментов существует своя собственная конкуренция. Вы можете делать дешевую мебель, продавать ее в дешевых магазинах, даже не знать о существовании Каролинских островов, и при этом совершенно никаким образом не пересекаться с производителями элитной мебели, которые так же не будут знать о существовании вас. И это совершенно нормально. Никто не называет это фрагментацией. Это называется другим словом «сегментация» — сегментация рынка на разные изолированные друг от друга секторы рынка, которые хоть и являются частью одного типа продукции, но зависят от разных источников спроса и предложения.
Что мы имеем на современном рынке мобильного ПО?
Есть компания Apple, которая делает качественные, топовые смартфоны, которые в момент их релиза всегда находятся на грани фантастики. Это элитный сегмент. Да, он очень большой даже в абсолютном значении, но суть не в этом, это уже меняется сейчас и будет продолжать меняться со временем.
Есть Андроид. Это не продукт сам по себе, а платформа для создания продуктов. Какие смартфоны есть на Андроиде? Есть такие же мощные топовые агрегаты, флагманы, мечта каждого гика, покупающего всё, что приближает его к идеалам киберпанковского будущего. Они (топовые агрегаты) конкурируют с айфоном и обладают примерно одинаковой схожей конфигурацией. Но, так сложилось, что на Андроиде с самого начала есть и не-флагманы. И именно это обстоятельство с момента старта современного витка смартфонной гонки и не дает уснуть людям, для которых слово «фрагментация» представляется ужасным минусом. Друзья мои, фрагментация рынка устройств — это плюс!
Что эти странные люди называют фрагментацией? Ответ: наличие различных устройств, работающих на одной системе, но обладающих различным параметров: разрешением и плотностью экрана, мощностью и количеством ядер, наличием аппаратных фич, версией самой системы. Существование нескольких десятков подобных сочетаний и напрягает некоторых разработчиков. Вот как для них, если для примера говорить только о разрешении экрана, выглядит сравнение айфона и андроида:
Все вышеозначенные параметры в совокупности определяют устройство в некий сектор смартфонного рынка, позиционируют его по шкале «мегафлагман — бюджетный телефончик». Проводя аналогию с нашим примером по мебель, можно с уверенностью сказать, что в случае со смартфонами эти секторы точно так же не пересекаются, ведь настоящие гаджетоманы покупают только флагманы, а те, кто покупает бюджетные смартфоны, делают из-за ценовых соображений, следовательно вряд ли они бы вообще купили себе смартфон, не будь на рынке их бюджетных вариантов.
Кроме того, наличие свободы выбора позволяет разным производителям выпускать свои собственные различные решения, таким образом увеличивая общее абсолютное количество устройств на рынке, самостоятельно вкладываться в маркетинг, и соответственно, увеличивать общее количество пользователей.
Вот как на самом деле должна выглядеть диаграмма сверху:
Круг iPhone превращается в пакмана — там просто нет тех разнообразных конфигураций, отсутствие которых и обеспечивает малую степень фрагментации. Но и нет тех пользователей, которым нравится рот пакмана, но не нравится его тушка.
Отсюда тезис №1: наличие различных вариантов конфигураций, которые позволяют делать бюджетные и просто различающиеся устройства, расширяет рынок, а не дробит его. Больше вариантов — больше людей покупают смартфоны, больше абсолютные значения на круговой диаграмме. Да, взамен на большее количество секторов на ней.
Представим себе идеальный по представлением жалющихся на фрагментацию мир, в котором в андроидном лагере нет разделения на различные кофигурации устройств, и все Андроиды примерно представляют конкурентов айфону, то есть находятся в высшем ценовом сегменте. Тогда, допустим, мы бы имели линейку различных HTC Desire и Samsung Galaxy S примерно со схожей базовой конфигурацией. Была бы красота, почти полное отсутствие фрагментации, существенно меньше секторов на диаграмме. Но не было бы дешевых бюджетных девайсов за 8 тысяч, не было бы слайдеров, не было бы горизонтальных форм-факторов: а значит, абсолютные значения количества пользователей и устройств были бы меньше. Убирая фрагментацию, мы просто вырезаем рот у пакмана, а не размазываем два крупнейших сектора по полному кругу.
Далее. На самом деле, если вам физически неприятно иметь несколько подкаталогов в каталоге /res/, вы можете уничтожить персонально для себя любую фрагментацию. Для этого в Андроид Маркете есть механизмы фильтрации по фичам устройств, которые созданы специально для таких ленивых людей.
Тезис №2: Не хотите бороться с фрагментацией — не боритесь. Не хотите делать интерфейс для ldpi — не делайте. Не хотите поддерживать навигацию без тачскрина — не поддерживайте. Вы вообще можете выпустить приложение исключительно для одного устройства, и это будет стопроцентное отсутствие фрагментации!
Все это касается фрагментации фундаментальной — когда есть различные экраны, форм-факторы и так далее. Есть еще фрагментация техническая — когда устаревает и не обновляется система на каких-то устройствах, разные видеочипы и т.д. С этим уже вполне реально бороться самому Гуглу, что он вполне успешно и делает — как минимум уже сделан серьезный шаг по обязыванию всех производителей выпускать в обязательном порядке обновления системы в течение 18 месяцев с момента выпуска устройства. Техническая фрагментация сводится к минимуму, а фундаментальная фрагментация — это плюс для разработчика.
Знаете, разговоры о минусах фрагментации похожи на то, как если бы производитель мебели начал говорить: «Это ужасно, я не могу так жить дальше, мне приходится думать о том, как делать разные диваны и для бедняков, и для богатых, и что самое страшное — мне приходится делать не только диваны, но еще и кресла и двуспальные кровати! Какой ужасный рынок». Уважаемый, не хочешь делать двуспальные кровати — не делай, причем тут рынок?
Итоговый тезис №3: В Apple приняли решение за вас и избавились от фрагментации, просто не выпуская тот класс устройств, который образует самую незначительную часть диаграммы и нужен самой незначительной части пользователей. Андроид дает вам возможность самостоятельно принимать это решение, персонально для себя выбирая уровень фрагментации. Если бы у айфонов была фрагментация, задействующая неиспользованные на данный момент бюджетные сегменты рынка — прибыль разработчика была бы больше или меньше? Разумеется, больше. Так как тогда опциональная фрагментация как возможность выбрать разные поддерживаемые сегменты, может быть минусом?
Поэтому, друзья, когда вам в следующий раз будут рассказывать про то, как сложно жить во фрагментированном андроидном мире, посоветуйте вырезать себе андроидному пакману рот и просто посмотреть на результаты.
Источник