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

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

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

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

Я уверен, что Hello World отлично работает на всех устройствах Android, но не так уж много игроков, знаете ли?

Было бы здорово узнать, прежде чем начинать с амбициозного приложения, например, GPS легко, непротиворечиво, но нативный код может быть кошмаром, или фотоснимки в порядке, видео неприятно поддерживать. SMS, база данных, доступ к SDK? OpenGL, жесты и т. Д. Такие вещи …

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

благодаря

PS и, пожалуйста, не говорите «развиваться на iOS …», это не вопрос, и хуже того, это слишком предсказуемо. 😉

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

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

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

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

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

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

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

Ну, так как вам нравятся страшные статьи, вот еще 2 страшные (и информативные) статьи:
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

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