Статьи

Android Futures: подготовка к сэндвичу с мороженым

Следующая основная версия Android SDK под кодовым названием Ice Cream Sandwich должна выйти в ближайшие пару месяцев . Пока мы ждем релиза, вот несколько быстрых советов, чтобы защитить ваши приложения на будущее.

Ice Cream Sandwich — долгожданный релиз Android SDK, который, как ожидается, объединит версии Gingerbread и Honeycomb в единой унифицированной платформе для всех устройств Android, больших и маленьких. Вот несколько советов по подготовке к новой редакции, которая, как ожидается, станет большим шагом вперед для платформы. И как все разработчики знают, большие скачки вперед часто сигнализируют о трудных временах для унаследованных приложений.

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

Команда Android является относительно закрытой группой. Android может быть с открытым исходным кодом, но разработка не является открытой. Это означает, что все, что вы слышали о следующей версии Android SDK (в данном случае, Ice Cream Sandwich или ICS), является чистой спекуляцией, пока не будет выпущен Ice Cream Sandwich, и мы увидим это своими глазами. Итак, поймите это: СМИ могут рассказывать вам все о том, что находится в ICS, но на самом деле они просто гадают или спекулируют.

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

Никто даже не уверен, какой будет номер версии ICS: Android 3.3? Android 3.5? Android 4.0? Наше личное предположение — Android 4.0, так как он считается новым выпуском, и мы уверены, что это будет API уровня 14, но никаких обещаний.

Когда он будет выпущен? Что ж, на Google IO 2011 ответ на этот вопрос был «4 квартал 2011 года». В недавнем заявлении Эрика Шмидта из Google говорится, что мы можем ожидать его в октябре / ноябре. Опять же, он будет здесь, когда доберется сюда. Иногда релизы приходят рано, иногда они держатся неделями, если что-то происходит в последнюю минуту. Это хорошая ставка, мы увидим это до Рождества.

Ну, тут есть хорошие новости. У разработчиков обычно есть шанс получить Android SDK, прежде чем он будет выпущен пользователям. Таким образом, у вас обычно есть некоторое время после выпуска, чтобы устранить любые проблемы с вашими приложениями, прежде чем ваши пользователи столкнутся с проблемами, при условии, что вы остаетесь в курсе выпусков, наблюдая за сайтом Android SDK (http://developer.android.com или просто http://d.android.com) и своевременно просматривайте ваши приложения.

Команда Android также неплохо справляется с обеспечением обратной совместимости в новых выпусках Android SDK. Это означает, что если ваши приложения хорошо работали на предыдущих версиях платформы и не делали ничего незаметного или недокументированного, они, вероятно, будут работать достаточно хорошо в новой версии … просто не будет использовать ничего нового, что может предложить ICS. Для этого вам необходимо проверить, что нового после выпуска платформы, и соответствующим образом обновить свое приложение. Поэтому лучше предусмотреть бюджетное время до выпуска для решения существующих проблем, а также некоторое время после выпуска ICS для обновления ваших приложений, чтобы использовать преимущества специфичных для ICS обновлений.

Последняя хорошая новость заключается в том, что после выпуска нового Android SDK операторы часто откладывают обновления прошивки. На самом деле, иногда бывает сложно приобрести физические устройства, на которых установлен последний SDK во время его выпуска. Опять же, шансы того, что ваши пользователи зарываются в ICS, прежде чем вы очень низки (а слухи о Nexus Prime еще грязнее, чем ICS).

Теперь давайте рассмотрим некоторые способы, которыми вы можете рассчитывать на будущее свои приложения и помочь подготовиться к Ice Cream Sandwich.

Можно с уверенностью сказать, что чем новее ваша цель сборки приложения, тем лучше вы будете. Если ваше приложение было написано для Android 1.5, вам, скорее всего, придется прыгать через гораздо больше обручей, чем если бы ваше приложение уже предназначалось для Android 2.3 или 3.2. Настало время привести ваши приложения в соответствие с новейшими стандартами, о которых вы знаете.

Ваше приложение Android 1.5 может работать, но с каждым выпуском увеличивается количество элементов, которые вы можете сделать, чтобы оно работало лучше. ICS, вероятно, не будет исключением из этого. Но больше людей будет иметь ICS, чем Honeycomb, который ввел такие понятия, как « совместимость масштабирования ».

Предполагается, что Ice Cream Sandwich — это версия, которая объединяет новейший SDK «в стиле смартфона» (Android 2.3, Gingerbread) с последним SDK «в стиле smartdevice» (Android 3.0-3.2, Honeycomb). Под интеллектуальными устройствами мы подразумеваем планшеты, телевизоры и другие подобные устройства. Возможно, вы заметили, что пакет совместимости был представлен некоторое время назад, чтобы помочь с проблемой фрагментации. Этот пакет предоставляет устаревшим Android SDK доступ к некоторым новым функциям платформы, таким как:

  • Фрагменты
  • Погрузчики
  • Action Bars
  • Обновлены классы MotionEvent, VelocityTracker, ViewConfiguration

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

По мере развития платформы Android, передовые методы разработки приложений меняются. Например, раньше настоятельно рекомендуется, чтобы ваш класс Activity управлял вашими курсорами с помощью методов startManagingCursor () и stopManagingCursor (). Теперь эти методы устарели, и вместо них рекомендуется решение LoaderManager / CursorLoader.

Вот еще один пример: Действия, используемые для управления их диалоговым пулом с использованием ряда методов обратного вызова на основе диалога. Все методы диалога в классе Activity теперь устарели. Вместо этого рекомендуется решение FragmentManager / DialogFragment.

Просмотрите ваше приложение и посмотрите, какие устаревшие методы используются. Благодаря внедрению новых рекомендуемых решений ваши приложения с большей вероятностью будут хорошо играть в новых версиях Android SDK. Вы можете узнать, что изменилось в конкретной версии Android SDK, просмотрев отчет API Diff. Например, это отчет API Diff для изменений в классе Activity для API уровня 13 . Восемь методов устарели только в этом классе.

Дороти в «Волшебнике страны Оз» усвоила свой урок, когда вышла из Дороги Желтого Кирпича. То же самое верно для разработчиков Android. Если вы будете следовать рекомендациям Android, ваши приложения с большей вероятностью останутся совместимыми с будущими версиями Android SDK просто потому, что они соответствуют поведению, ожидаемому от хорошо разработанных приложений.

Взломы, эксплойты и использование недокументированных API-интерфейсов являются опасными областями при каждом обновлении Android SDK. Ice Cream Sandwich, как новая важная версия, скорее всего встряхнет, чем незначительное обновление прошивки. Настало время исправить слабые места в вашем приложении, которые не соответствуют рекомендациям. Возможно, вам понадобился этот взлом на раннем этапе, но убедитесь, что сейчас нет лучшего способа. Хороший пример этого — старые унаследованные приложения, которые не используют надлежащие методы для обнаружения и реагирования на изменения ориентации.

У нас есть несколько руководств по лучшей практике для Android, доступных здесь, на Mobiletuts +, которые вы можете просмотреть. Вы также можете найти больше информации на сайте разработчиков Android.

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

Для большинства явных изменений достаточно просто изменить целевой SDK, оставив минимальный SDK, но обязательно протестируйте. Внутренние слои совместимости с Android могут изменить поведение в зависимости от целевой версии SDK.

По всей вероятности, ваши унаследованные приложения были написаны либо для смартфонов, либо для смарт-устройств (например, планшетов). Следовательно, могут быть предположения о кодировании и дизайне пользовательского интерфейса, встроенные в дизайн вашего приложения. Например, вы можете предположить, что все устройства имеют функции телефонии, или камеру, или GPS.

В то время эти предположения могли показаться разумными, но с учетом того, что ICS настроен на «сэндвич» для смартфонов и смарт-устройств SDK в один восхитительный пакет, сейчас самое время переосмыслить их.

Проверяете ли вы наличие оборудования или API, прежде чем пытаться получить доступ к этим функциям или службам? Ваше приложение отказывает изящно, когда эти службы не существуют? Теперь настало время проверить эти предположения, реализовать альтернативные функции для случаев, когда ваши предположения неверны (даже если это означает изящное завершение работы приложения).

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

Надеемся, что эти советы по кодированию помогут сделать переход более плавным и простым, так что вы выйдете на шаг впереди игры, когда релиз Ice Cream Sandwich появится на сайте в конце этого года. Какие функции SDK вы надеетесь увидеть в этом ожидаемом выпуске? Оставьте нам комментарий и дайте нам знать!

Разработчики мобильных приложений Лорен Дарси и Шейн Кондер являются соавторами нескольких книг по разработке Android: углубленная книга по программированию под названием « Разработка беспроводных приложений для Android, второе издание» и « Самс научи себя разработке приложений для Android за 24 часа, второе издание» . Когда они не пишут, они тратят свое время на разработку мобильного программного обеспечения в своей компании и оказание консультационных услуг. С ними можно связаться по электронной почте [email protected] , через их блог на androidbook.blogspot.com и в Twitter @androidwireless .

Купить Android-разработку беспроводных приложений, 2-е издание Купить Sam's Teach Yourself для Android-разработки приложений в течение 24 часов, второе издание Код Мамламбо в Код-Каньоне