Миф о фрагментации Android

    image
    В последнее время мы все чаще слышим о том, насколько фрагментированным стал рынок Андроид-устройств, как Гугл отдала контроль над Андроидом производителям устройств, и насколько кошмарно написание и тестирование приложений под ОС Андроид. Все это не соответствует действительности.

    Чтобы понять, что именно сформировало такое мнение, рассмотрим первую диаграмму, размещенную в блоге компании 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 лет.

    via InfoWorld
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 59
    • +7
      Чисто из практического опыта могу сказать, что работоспособность большой части приложений всё-таки зависит от версии прошивки и модели коммуникатора/планшета. Размер экрана, та же вспышка, мультитач и т.д. делают невозможным работоспособность на 99.7 % устройств. Хотя я всё равно очень рад этой платформе!
      • –2
        Мейнстримовых размеров экрана всего 3 штуки, мультитач встроен в API начиная с 2.0, как и стандартная вспышка.
        • +6
          Я имел ввиду, что мультитач не везде «честный». Например у меня на Legend есть только две Х и две Y координаты и невозможно определить их настоящие пары. Это известная проблема для многих устройств. Размеров экранов основных действительно штуки 3, но есть огромная куча нестандартных. И их всё равно надо учитывать.
          • +1
            Ээээ… то есть это аппаратное ограничение, а не баг? Страдают все htc телефоны, моторола вроде тоже. Даже тикет открыт в бактрекере на эту тему.
            • +1
              Это аппаратное ограничение. При помощи всяких фокусов его обходят, но это, таки, заплатки и периодически пары X/Y все равно путаются.
          • НЛО прилетело и опубликовало эту надпись здесь
            • НЛО прилетело и опубликовало эту надпись здесь
          • +1
            Ну а кто кроме самих разработчиков виноват в том, что их ПО не поддерживает экраны каких-то размеров? Проектирование интерфейса под Андроид очень напоминает вёрстку веб-сайта. Проверить на эмуляторе, что всё масштабируется как надо при разных разрешения экрана — дело пяти минут.
            Просто не надо наплевательски относиться к разрабатываемому ПО, и всё будет прекрасно.
            • –1
              Это если нативный интерфейс рисовать, а вот при работе с растровой графикой все не так просто.
            • +2
              у меня vobis highscreen zeus с прошивкой RCMod 3.0 (Android 2.2).
              и честно говоря, это не очень гуглофон. то есть он не сертифицирован или что-то такое.
              в нем нет компаса.
              в нем нестандартный экран 240x400.
              в нем какая-то паршивая камера. и судя по всему какого-то нестандартного разрешения.
              и в дефолтной версии андроида были проблемы с баркод-сканерами (большинство не запускалось).
              сейчас же у меня не возникает ни одной проблемы совместимости ПО.
              у меня стоит нормальная прошивка. и всё ок.
              проблем совместимости нет.
              зато при покупке у меня есть выбор. я могу себе позвольить устройство с кверти-клавиатурой. в частности. )
            • НЛО прилетело и опубликовало эту надпись здесь
              • +2
                2.2 и 2.1 практически ничего не отличаются с точки зрения написания приложений. Сейчас можно спокойно ставить 2.1 это будет 80% рынка устройств. А через полгода, наверное, и все 99%.
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    Большинство производителей крайне неохотно обновляют прошивки.
                  • 0
                    Да. А еще на developer.android.com/resources/dashboard/platform-versions.html можно посмотреть обновляемый чарт количества версий андроида. Еще ~месяц назад 1.5 и 1.6 в сумме занимали 50%.
              • 0
                Быть может, конечно, я промахнулся (тогда сорри), но вроде бы комментарий близкий к этому посту: habrahabr.ru/blogs/firefox/105768/#comment_3317615
                • 0
                  гм… сдается мне это не совсем честно, так как ФФ пишут не совсем на далвике, или совсем не на далвике…
                • +13
                  За слово АндроЙд надо писателей постов взять, и со всего размаху глазом на карандаш насаживать. Боюсь, что меньшие меры уже не помогут.
                  • +1
                    Аминь. Только массовые расстрелы спасут родину.
                    Сильно глаз и ухо режут такие андроИды.
                    • 0
                      Хотел написать «андроЙды», но XT9 на телефоне поправил. Жалко у автора такого не произошло.
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • –2
                        злой вы.
                        fixed
                        • +4
                          Ново-Пассит — и вас не будут волновать такие мелочи.
                        • +4
                          Фрагментация проявляется не только в том что сложно/несложно писать приложения. А в том железо у всех разное и производители сами пишут под него драйверы. Так как софтовые подразделения у многих производителей слабенькие, имеем ситуацию, когда топовый смартфон Sony Ericsson Xperia X10 все еще на 1.6

                          И если разработчик использовал апи > 1.6, то все у кого Х10 в пролете.
                          • –1
                            >софтовые подразделения у многих производителей слабенькие

                            это проблемы жадности вендоров.

                            взять готовый порт ядра на нужный SoC и костылями припилить поддержку своих полторы с половиной асиков, имея на руках полные спеки и неприличное количество денег — решаемая задача.
                          • +4
                            А как же фрагментация со стороны пользователя, 4 андроид магазина, это 4 раза вводить свою кредитки и 4 разных аккаунта.
                            • 0
                              О чем вы? Какие еще 4 магазина? Во-первых их еще нету. Во-вторых вас никто не заставляет ими пользоваться. В-третьих, 99.9% приложений есть в стандартном маркете, кроме тех которые запрещены правилами (adult итд).
                            • –3
                              Пока об этом не упомянул сам Дж-бс, никто не уделял никакого внимания этому. И вот настал момент, Android кусает за задницу Apple, продажи падают и Дж-бс сделал очередной вброс :)
                              • +10
                                Продажи падают?=) У Apple? Вы кажется не смотрели статистику и графики.
                                • –2
                                  Смотрел. Рынок США у RIM Apple никогда не отберет, а Android уже превзошел по продажам Apple. В чем я не прав? А, да, Россию с 2,5 телефонами можно не рассматривать, т.к. Apple нас не рассматривает как место, где можно продать что-то.
                                  • +4
                                    продажи падают

                                    Вот в этом не правы. Продажи растут бешенными темпами, так же, как и прибыль.
                                    • –7
                                      Ну не верю я в 91%, не может быть такого роста. Может быть, конечно, iPad так хорошо разбирается или другие услуги или что-то еще, но провальный iphone 4 не мог разойтись таким количеством. При таком росте RIM, HTC, Motorola, Nokia должны были сложить лапки и улечься в гробики.
                                      • +5
                                        а зачем верить или не верить, если есть сухая статистика в финансовом отчете? Эппл — публичная компания, проводит аудит по всем правилам и отчитывается перед акционерами согласно законодательству США.
                                        • –6
                                          Ну раз публичная, дайте ссылочку, где почитать по продажам iphone более конкретно, где сколько продано итд?
                            • +2
                              Тестирование приложений под Android гораздо проще оптимизации под различные версии ОС

                              Хреновое сравнение. Дословно: у нас фрагментация, но вон за углом все еще хуже.
                              • 0
                                черт, вот вся цитата:
                                Тестирование приложений под Android гораздо проще оптимизации под различные версии ОС, версии браузеров и разрешения экрана, которые приходилось делать в последние 50 лет.
                                • 0
                                  Это хорошее сравнение, учитывая, сколько софта пишут под винду. Дословно: вон за углом еще хуже, но там это никого не останавливает — значит, не остановит и здесь, что бы Джобс ни говорил.
                                  • 0
                                    какбэ наполняемость маркета говорит об обратном, не?
                                    • 0
                                      ваше бы упорство да в мирных целях. хорошо, давайте еще раз, по буквам. продажи андроидфонов только недавно превысили продажи айфонов. и это текущие продажи — а если считать все телефоны, которые сейчас используются, то там айфонов будет больше, потому что накопились за время их лидерства. к тому же андроид и его маркет были запущены на год с лишним позже айфона. в таком случае совершенно неудивительно, что приложений под айфон сейчас больше. но ситуация уже меняется — и будет меняться все быстрее по мере увеличения отрыва андроидфонов в продаже. а особенно резко изменится, когда количество андроидфонов на руках у людей превысит количество айфонов. так понятно?
                              • 0
                                Только мне написание «андроид» через «й» кажется невыносимо отвратительным?
                                • +1
                                  Не только. Мне тоже. Также см. выше комментарий про карандаш.
                                • –5
                                  Какое же бессмысленное времяпрепровождение — обсуждать проблемы фрагментации Андроида.

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

                                  Подождите год — никакой фрагментации не будет. А пока ничто не мешает пользоваться текущей версией.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • 0
                                      В день активируется 200 000 устройств с андроидом. И это отнюдь не разработчики.

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

                                      Я не погромист — мне нужна нормальная работа с смс и сервисами гугла. Андроид это делает хорошо даже в версии 1.5
                                      Кому-то нужна нормальная работа с iTunes — бох в помощь.

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

                                      Телефон есть телефон — «проблема» фрагментации — это проблема Гугла, который мог бы зарабатывать больше если бы этой проблемы не было. Пользователям (200 000 в день) — пофигу. Ну и опять же — судя по опыту Хрома — через год вся эта свистопляска войдет в обычное русло. Плюс-минус версия в полгода.
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        • +1
                                          Если бы версия Андроида была одна для всех — маркет все равно был бы заполнен перделками на 95%. Это связано с психологией пользователей и средним возрастом программистов.

                                          Для разработчиков проблема очевидна. Конечно замечательно когда ты написал приложение и оно работает везде и всегда. Для пользователей проблема очевидна — ты купил телефон за 600 баксов, а на нем через полгода не идут Злые Птицы.

                                          Но с точки зрения 200 000 активаций в день — обсуждать это бессмысленно. Система есть и она работает. На трех сотнях устройств. А через год их будет больше тысячи. Да неудобно. Но ограничения в основном не в системе, а в железе. Через год все сравняется. Гугл все равно не остановится. К чему сотрясать воздух? Пытаться привить 2.2 на телефон полуторалетней давности?
                                      • 0
                                        Абсолютно с вами согласен. Написал приложение под 1.6 с совместимостью под 1.5 и до 2.2 включительно. Потестил на своем Hero (с 1.5, а потом и 2.1). Сейчас пользователи жалуются, что не идет на wildfire. До тестов на Hero оказалось, что не работает отсылка mms/email с аттачем, хотя на эмуляторе все было хорошо. В общем фрагментация есть и мешает она в основном разработчикам, а косвенным образом отражается на пользователях.
                                        • 0
                                          И кстати, как пользователя htc Hero я забил программами все внутреннее хранилище и теперь перед установкой чего-то нового ищу чего же мне меньше нужно (а нужно то все) из установленных программ. А установка программ на SD с версией 2.2, думаю уже не светит для Hero.
                                    • +7
                                      Фрагментация рынка Андройд-устройств не проблема для разработчиков ПО.

                                      8-)
                                      • +3
                                        Откомменчусь своими мыслями, в-основном к вот этому тезису:
                                        Проведите внутреннее тестирование на трех телефонах на базе Android 2.2 по одному от HTC, Samsung, Motorola.


                                        Предположим, что я работаю в компании Cisco, и должен оттестировать Cisco VPN Client for Android — такого тестирования будет явно недостаточно.
                                        Да, вы можете сказать, что для компании такого уровня купить все существующие устройства — не проблема. Это так, только сколько человекочасов займет тестирование?
                                        Плюс нужен будет «специально обученный человек», который будет следить за появлением новых устройств, и немедленно подавать заявку на тестирование.

                                        В этом плане iOS выглядит привлекательнее как раз за счет меньшей фрагментации. И именно поэтому в копоративном секторе iOS и Blackberry занимают лидирующую позицию.
                                        • 0
                                          В идеале, достаточно вообще должно быть тестирования на эмуляторе. Но для этого нужно кучу всяких «если»…
                                          • 0
                                            В идеале еще иметь хороший эмулятор, а то есть приложения, которые тестировать на эмуляторе просто невозможно. Ну и многое на эмуляторе работает, а на телефоне перестает.
                                            • 0
                                              Именно так. В идеале.
                                              По факту же, даже на такой относительно нефрагментированной платформе, как Windows (десктопная) проблемы с софтом чуть сложнее «свистелки-перделки» могут возникнуть после установки одного патча от MS, помеченного как «необязательный».
                                              Даже на «яблочной» платформе я уже столкнулся с тем, что идеально работающее в эмуляторе приложение сбоит на реальном аппарате.
                                              Я даже не буду вспоминать о том, как сильно может повлиять сторонний софт — опять же, в приведенном мной «гипотетическом» примере альтернативный менеджер подключений может привести отлаженный клиент в полностью нерабочее состояние.

                                              Слишком много «если», да.
                                          • +2
                                            Как раз у Блэкберри проблемы с фрагментацией едва ли не большие, чем у Андроида, аппараты там отличаются. Например, цитата: «Many developers who develop for BlackBerry run into two huge fragmentation issues – the first at the device level and the second at the carrier level». В США iPhone доступен только для пользователей оператора AT&T, а Блэкберри представляет различные телефоны под разных операторов. (И поскольку он привязывает людей к рабочей почте, вынуждая работать по 16 часов в сутки, для работодателей это выгодная сделка — потому и популярен, несмотря на все недостатки)

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

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