Какой тип приложений для Android сложнее всего поддерживать (беспокойство о фрагментации)

На днях увидел интересный и немного пугающий пост в блоге. Это была коллекция мобильных устройств Android, на которых они тестировали. Их было около 400. --> http://feedproxy.google.com/~r/Techcrunch/~3/0LybOzd0l0U/

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

Для тех, кто какое-то время разбирался в Android, какие-нибудь данные или советы о том, какие приложения легче всего обрабатывают различные устройства? Разработчик в блоге сделал много игр, это самые хитрые?

Я уверен, что Hello World очень хорошо работает на всех устройствах Android, но желающих будет немного, понимаете?

Было бы здорово знать перед тем, как приступить к амбициозному приложению, что, например, GPS — это просто и последовательно, но нативный код может быть кошмаром, или неподвижные изображения в порядке, а видео противно поддерживать. СМС, база данных, доступ к SD-карте? OpenGL, жесты и тому подобное...

Если у кого-то есть несколько общих советов или особенно список самых простых и сложных, это может быть ОЧЕНЬ полезно для нас, новичков.

Спасибо

P.S. и, пожалуйста, не говорите "разрабатывать на iOS...", это не вопрос, и что еще хуже, это слишком предсказуемо. ;-)


person JustSomeGuy    schedule 16.05.2012    source источник
comment
Этот вопрос не относится к stackoverflow. Я не думаю, что вы где-нибудь найдете такие рекомендации, вы должны быть более озабочены соблюдением хороших правил создания приложений для Android. Не беспокойтесь о поддержке каждого устройства, пока вы не создадите что-то, что раздвинет ограничения платформы Android.   -  person user    schedule 16.05.2012
comment
Здесь проще всего ошибиться не столько с разными устройствами, сколько с разными версиями. Пока вы проверяете API, который используете, чтобы убедиться, что ваши версии min/max sdk верны (и придерживаетесь задокументированного API, а не соблазняетесь хаками), все должно идти хорошо.   -  person Turnsole    schedule 16.05.2012
comment
Кроме того: android.stackexchange.com — лучший форум для обсуждения конкретных устройств, SO предназначен для конкретных вопросов по программированию. Также programmers.stackexchange.com хорошо подходит для вопросов по контролю качества и советов программистов.   -  person Turnsole    schedule 16.05.2012
comment
возможно, следующая статья может частично ответить на ваш вопрос. В конце статьи упоминаются варианты контроля качества: блог. lemberg.co.uk/android-apps-qa#.Ub3-z-d7KSo   -  person Lyubomyr Dutko    schedule 16.06.2013


Ответы (3)


Они развиваются на уровне 70 million downloads и довольно активно работают на азиатском рынке, что означает множество новых устройств от lower-end Asian manufacturers.

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

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

person MrEngineer13    schedule 16.05.2012

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

Основная область, которая становится сложной, — это когда вы взаимодействуете с другими приложениями, такими как Галерея, Адресная книга и т. Д. Любое место, где OEM-производитель может изменить встроенные приложения, с которыми вы хотите интегрироваться, может вызвать проблемы. Это не проблема для большинства приложений. В частности, я работал над приложением для обмена сообщениями, которое требовало тестирования на всех телефонах определенного оператора; это не тот проект, за который, как я ожидаю, возьмется кто-то соло.

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

На самом деле вам нужно протестировать на некоторых реальных устройствах, если для вашего приложения важно иметь коммерческий успех. Лично я бы сказал, что минимум для тестирования будет на телефоне каждого крупного OEM-производителя, как Gingerbread, так и ICS, и если это сетевое приложение, по одному на каждом операторе. Этот уровень финансовых обязательств нереалистичен для тех, кто только начинает, и в этот момент вы просто используете своих пользователей в качестве тестировщиков.

person cistearns    schedule 16.05.2012

Что ж, раз вам нравятся страшные статьи, вот еще две страшные (и информативные) статьи:
http://opensignalmaps.com/reports/fragmentation.php
http://burnsmod.com/development/2012/05/01/Android-Fragmentation-Hurts-Everyone/

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

API-интерфейсы камеры, как высокого, так и низкого уровня, могут быть проблематичными. Например, я столкнулся с специфическими для устройства проблемами с высокоуровневыми API-интерфейсами камеры при вызове через startActivityForResult с android.media.action.IMAGE_CAPTURE.

Подробнее об ошибках, связанных с конкретными устройствами, можно узнать здесь:
Есть ли подборка ошибок для устройств Android?
Специфические для Android устройства Ошибки

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

person Theo    schedule 16.05.2012