Что каждый App разработчик должен знать о Android

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

“Сбои” и “не работающих” Наиболее распространенный feedback 1 на Google Play для неустойчивых или вялых приложений (включая игры).Эти комментарии и рейтинги сделать сотни миллионов потенциальных загрузчиков пропустить эти паршивые приложения.Звучит жестко, но это так, как это .

Приложение успешно не случайно.Это результат правильных решений в нужное время. Наиболее успешным мобильное приложение developers 2 понимают важность производительности, качества и надежности всей массива мобильных устройств, которые их клиенты используют .

Множество примеров того, как легко разработчик может идти очень, очень неправильно с их приложения.Приложение может вести себя по-разному на эстрадного мобильного devices 3 , даже те, под управлением той же версии ОС и одинаковые аппаратные компоненты .

Testdroid Cloud hosts hundreds of working Android and iOS devices. 4
Testdroid Cloud содержит сотни работы Android и IOS устройств.(Кредит изображения: Testdroid 14 5 ) ( Просмотр большой version 6 )

В течение 1 квартала этого года (с 1 января по 31 марта), мы собрали значительную сумму данных из Testdroid Cloud 7 на тестах, проводимых многими мобильное приложение и игровых разработчиков.Testdroid Облако онлайн облачных платформ для мобильных разработчики, чтобы проверить, что их приложения работают отлично от устройств, которые их клиенты используют .

В течение этого периода, более 17,7 млн ​​тесты проводились на 288 различных Android аппаратных моделей.Для ясности, различные версии некоторых популярных моделей были испытаны, но учитываются в качестве данных одного отдельного устройства (такие, как Samsung Galaxy S4GT-i9505 8 работа 4.2.2 Уровень API 17).Некоторые популярные устройства также имеют различные версии одного ОС, такие как Google Nexus 7 ME370T 9 с Android OS версии 4.1.2 (уровень API 16), уровень 4.2.2 (API 17) и 4,3 (уровень API 18) .

Все тесты были автоматизированы, используя стандартные Android instrumentation 10 и другое тест-автоматизация frameworks 11 .В случае, если вы не знакомы с аппаратуры, Android имеет tutorial 12 что объясняет основную автоматизации тестирования.Кроме того, тесты поймали проблем с помощью журналов, скриншоты, анализ производительности, а вероятность успеха-неудачи теста проходит .

Примечание: | “. Завершена” __ 34 данных включает в себя все результаты испытания, начиная с самой ранней стадии (= АПК готов), когда приложение получает Поэтому, она включает в себя точные проблемы, которые разработчики, возникших в ходе этого процесса .

The research statistics, testbed and global coverage. 13
Научно-исследовательские статистика, тестовая и глобальный охват.(Кредит изображения: Testdroid 14 5 ) ( Просмотр большой version 15 )

Цель данного исследования было выявить наиболее общие проблемы и задачи, которые разработчики Android сталкиваются с устройствами, которые они строят для. 288 уникальный Android устройство models 16 представляют собой значительный объем Android использования: примерно от 92 до 97% мировых объемов Android, в зависимости от того, как это можно измерить и какие регионы и рынки входят.Это исследование представляет собой замечательный охватAndroid использования в глобальном масштабе, и оно наглядно показывает наиболее очевидные проблемы, а также статус Android аппаратного и программного обеспечения из точки зрения разработчика .

Мы погрузиться в двух областях исследований: Android software 17 и hardware 18 .Раздел Программное обеспечение фокусируется на версии ОС и OEM настроек и раздел аппаратного ломается на уровне компонентов (дисплей, память, чипсет и т.д.). .

Android Software

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

Android OS обвиняют в Платформа fragmentation 19 , что делает вещи очень трудно для разработчиков, пользователей и почти каждый игрок в экосистеме, чтобы не отставать.Тем не менее, это не совсем так.OS очень редко делает вещи взломать сам по себе — специально для разработчиков приложений.Чаще всего это также включает в себя обновления OEM, оборудования и многие другие факторы — в дополнение к ОС .

Data collected during a 7-day period ending on July 7, 2014. 20
Данные, собранные в течение семи дней, заканчивая 7 июля 2014 года (кредит изображения: Google 21 ) (Просмотр большой version 22 )

Одна из причин, почему Android является чрезвычайно популярным среди мобильных энтузиастов и быстро вскочил впереди Apple’ сек IOS доли рынка в том, что он приходит в устройства всех shapes 23 , цены и формы,от десятков различных производителей .

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

Как читать Graphs

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

ОС и платформы Versions

Мы начнем с наиболее важного фактора в задачах, с которыми сталкиваются разработчики приложений: Android OS versions 25 .Это значительно влияет которая API, разработчики могут использовать, и как эти API, поддерживаются в различных устройствах .

Многие разработчики столкнулись все великие новых возможностей, улучшений и дополнений, которые Android принесла версию, version 26 .Некоторые опоздавшие играли только с последними версиями, но некоторые из них были разработки приложений с первых дней, как дней Кекс (1,5) и кольцевая (1.6).Конечно, эти версии не имеют отношения больше .

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

The Release version for each OS version. 27
Версия релиза каждой версии ОС.(Кредит изображения: Testdroid 75 72 69 66 62 53 49 43 31 28 ) ( Просмотр большой version 29 )

Наиболее типичная ситуация с разработчиками приложений, которые хотят максимальную поддержку для всех возможных вариантов является то, что они начнут тестирование с версии 4.0 (Ice Cream Sandwich, уровень API 14).Тем не менее, если вы действительно хотите, чтобы обеспечить максимальный охват, начать с версии 2.3.3 (Gingerbread, уровень API 10) и проверить все возможные комбинации до последней версии Kit Kat (в настоящее время 4.4.4 и, мы надеемся, в ближайшее время, Android л).Версии старше 4,0 до сих пор серьезного использования — и будет продолжать в течение некоторого времени .

The Failure Rate by Each OS Version. 30
отказов каждой версии ОС.(Кредит изображения: Testdroid 75 72 69 66 62 53 49 43 31 28 ) ( Просмотр большой version 32 )

Когда дело доходит до последних версий Android — и давайте посчитаем Ice Cream Sandwich ( 4.0.3 для 4.0.4 33 ), Jelly Bean ( 4.1.1 4.3 34 ) и Kit Kat ( от 4,4 до 4.4.2 35 ) среди них — Ice Cream Sandwich явно наиболеенадежная платформа.Обновления OEM были, очевидно, наименее проблематична на этой версии, и большинство протестированных приложений работали очень хорошо на уровне API 15 (4.0.3 к 4.0.4) .

Обновление до Jelly Bean и уровень API 16 существенно не вводить новые проблемы несовместимости, а средний процент отказа остается относительно низким.Тем не менее, уровень API 16 было много случаев выброса и по уважительным причинам.Например, сообщалось больше проблем с VSync, расширяемых уведомлений и особенно с поддержкой блокировки экрана и домашнего экрана вращения .

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

Возможно, самое удивительное, отказов пошел up 36 когда Kit Kat уровень API 19 был выпущен.Средний процент отказа достигла почти такой же уровень, как это было с Gingerbread.Google исправлена ​​Kit Kat довольно быстро с двумя выпусками (4.4.1 и 4.4.2).Из них 4.4.2, казалось, живут гораздо дольше, а затем обновление 4.4.3 вышел более чем на полгода позже .

Основные выводы OS Versions

  • В среднем, 23% приложений ведут себя по-разному при установке новой версии.Средний процент ошибок был маленький с Ice Cream Sandwich (1%), то Jelly Bean (8%), Honeycomb (8%), Kit Kat (21%) и, наконец, пряники (30%).Это на самом деле меньше, чем то, что было обнаружено в исследовании, проведенном с данными Q4 (частота отказов 35%) .
  • Несмотря на старые версии Android их очень мало, и пряник является старейшим активно используется, некоторые приложения (40% испытуемых) по-прежнему работают на более старые версии (ниже 2,2), используемые.Другими словами, если приложение работает на версии 2.2, то он будет работать 40% времени в еще более ранних версиях, а также .
  • Более 50% о новинках Android OS представил проблемы, которые сделали приложения неудачу при тестировании .
  • Тестирование не удалось 68% времени, когда 5 приложения были случайно выбрал из 100 .
  • Средняя продолжительность тестирования было 57 циклов в платформе.Старые версии были протестированы менее, чем новые: Gingerbread (12 циклов испытания), Ice Cream Sandwich (17), Jelly Bean (58) и Kit Kat (95) .
  • Средний цикл тестирования снижается на 1,75% ошибок в кодеОбщая .

Примечание: Испытательный цикл представляет собой повторение конкретного тестовый скрипт выполняется в одном приложении версии.Когда приложение изменилось, и тест остается такой же, что засчитывается как нового цикла испытаний .

Советы и Takeaways

  • Для максимального охвата ни географически, ни в глобальном масштабе, используя как можно больше физических устройств, насколько это возможно, рекомендуется.Подписка использование вашей целевой аудитории различных версий ОС.Глобальный статус версий доступно на dashboard 37 .
  • Все версии ОС выше 2.3.3 по-прежнему актуальны.Это не скорее всего, изменится скоро, потому что пользователи Gingerbread и Ice Cream Sandwich составляют почти одну четверть всех пользователей Android, и многие из них не обновлять (или бы сделали) .
  • Если вы хотите, чтобы покрыть 66% объема OS, то тестирование с Kit Kat (4.4.x) и Jelly Bean (4.1 до 4.3) достаточно (за API 16 до 19).
  • Для покрытия 75% объемов операционной системы, затем проверить, начиная с версии 4.0.3 (уровень API 15) .
  • Мы рекомендуем проверить следующие устройства, чтобы максимизировать охват:
    • Amazon Kindle Fire D01400 — 2.3.4
    • HTC Desire HD A9191 — 2.3.5
    • Huawei Fusion 2 U8665 — 2.3.6
    • Sony Xperia U ST25i — 2.3.7
    • Asus Eee Pad Transformer TF101 — 4.0.3
    • LG Lucid 4G — 4.0.4
    • HTC One S X520e — 4.1.1
    • Motorola Droid Xyboard 10.1 MX617 4.1.2
    • Acer Iconia B1-A71 — 4.2
    • BQ Aquaris 5 HD — 4.2.1
    • HTC One мини M4 — 4.2.2
    • Samsung Galaxy Note II GT-N7100 — 4.3
    • LG Google Nexus 5 D821 — 4.4
    • HTC One M8 — 4.4.2

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

OEM Customizations

Один камнем преткновения с Android — как любой открытым исходным кодом проекта — является его настраиваемость, который предоставляет всю платформу к проблемам.То, что называется “фрагментация” разработчиками будет считаться точкой дифференциации для OEM-производителей.В последние годы, все Android производители с готовностью построили свою собственную layers 39 , скины и другие промежуточного сверху ванильным Android.Это важный источник фрагментации,влияет разработчики .

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

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

Failure rate by OEM. 42
Отказ ставка по OEM.(Кредит изображения: Testdroid 75 72 69 66 62 53 49 43 31 28 ) ( Просмотр большой version 44 )

Основные выводы, относящиеся к OEM Customizations

  • Не удивительно, что устройства Samsung не относятся к числу наиболее надежным и самым проблематичным.Например, Galaxy Nexus GT-I9250 является одним из наиболее надежных устройств во всех категориях, в то время как Samsung SGH Настаивать 4G-i997 не удалось самым в тех же категорий .
  • Устройства Asus, а также с устройствами Xiaomi, являются наиболее надежными.Xiaomi реализует Android-разному, однако;например, всплывающие окна сделать управляемость некоторых устройств невозможным .
  • Coolpad имеет, по объему, большинство проблем.Средикрупнейших брендов, HTC имеет наименьшие подверженных ошибкам устройства .
  • Все крупные бренды — HTC, Samsung, Sony и LG — есть настройки, которые проблематично для некоторых типов приложений.Например, настройки Sony ломает некоторые базовые функции, такие как просмотр PDF-файлов.Настройки Samsung имеет проблемы с получение снимков с камеры и прерывания звонки .

Советы и Takeaways

  • Наиболее распространенным заблуждением является то, что устройства Nexus являются лучшими для тестирования.Эти устройства обычно имеют самую последнюю версию операционной системы и практически нет настройки OEM .
  • Обратите внимание на операторского и оператор фирменных устройств, а также.Некоторые из них не реализует Android совершенно по-разному, независимо от названия устройства или торговой марки .

Зависимости от других Software

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

Основные выводы, относящиеся к зависимости от других Software

  • 92% приложений интегрироваться с данной платформы, чтобы показать объявления .
  • 65% приложений интеграции с платформой по крайней мере, одной социальной медиа .
  • 48% приложений интеграции, по крайней мере, двух социальных медиа-платформ .
  • 33% приложений интеграции, по крайней мере, три или более социальных медиа-платформ .

Советы и Takeaways

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

Android Hardware

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

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

Разрешение экрана, дисплей и Colors

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

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

Identical app on 3 different Android devices running identical OS version and hardware. 48
Можете ли вы увидеть разницу?Идентичны приложение работает на трех различных Android устройств с той же версией ОС и аппаратных спецификаций.(Кредит изображения: Testdroid 75 72 69 66 62 53
Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.