Статьи

Android Futures: создание приложений для Android для Google TV

Google IO 2011 состоялся в начале мая в Сан-Франциско, штат Калифорния. Среди множества объявлений и огромного количества информации разработка Android для Google TV получила небольшое освещение. На момент написания этой статьи большинство разработчиков пока не может использовать Google TV в качестве целевого устройства для разработки, но это скоро изменится. Разработчики, желающие получить преимущество, могут следовать нескольким простым советам и быть готовыми, когда потребители смогут загружать приложения для своих телевизоров.

Этим летом (2011 г.) планируется обновить существующие устройства Google TV до версии Android 3.1, вариант Honeycomb. Android Market для Google TV выйдет с этим обновлением, что делает эту платформу Android новой, к которой разработчики хотят подготовиться. Существует несколько ключевых отличий между устройствами Google TV и традиционными портативными устройствами Android, такими как телефоны и планшеты. Большинство советов касаются учета этих различий.

Устройства Google TV работают с двумя разрешениями. Первый — 720p (он же «HD»), или 1280×720 пикселей. Второй — 1080p (он же «Full HD») или 1920×1080 пикселей. Они могут звучать как большие числа, но давайте посмотрим, как они сравниваются:

  • Разрешение 1280×720 пикселей на самом деле ниже, чем у существующих планшетов Honeycomb (Android 3.0) с разрешением 1280×800.
  • 1920×1080 на самом деле ровно в 4 раза больше пикселей, найденных в телефоне с дисплеем qHD («четверть» HD — имеет смысл, верно?), Который составляет 960×540 пикселей.

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

Для экранов 720p DPI будет считаться высоким или HDPI. Для экранов 1080p, DPI будет считаться сверхвысоким, или XHDPI. Оба экрана считаются большими с точки зрения ресурсов.

При создании графики и ресурсов эти свойства — разрешение, плотность, большой размер и альбомная ориентация — можно комбинировать для узкой ориентации на устройства Google TV. Графика и макеты должны быть довольно большими. Воспринимаемая плотность довольно реалистична. Компоновка, которая на планшете может выглядеть правильно или слегка завышена, может быть как раз для телевизора.

Одно предостережение — не полагаться на точное количество пикселей. Телевизоры работают немного иначе, чем обычные экраны, и не все на самом деле выставляют каждый пиксель. Google TV настроит точное разрешение, чтобы ничего не обрезалось по краям. Это означает, что ваш дизайн экрана должен быть несколько гибким, чтобы приспособиться к небольшим изменениям, когда у вас была возможность протестировать свои приложения на реальных устройствах Google TV.

Помимо физических различий между телефонами, планшетами и телевизорами, есть еще одно важное отличие: у телевизоров нет сенсорных экранов. Типичный интерфейс для устройства Google TV — это указатель или d-pad, то есть клавиши со стрелками вверх, вниз, влево и вправо вместе с кнопкой выбора. Некоторые телевизоры Google также могут иметь мышь, которая считается устройством ввода «искусственное прикосновение». Это имеет несколько последствий с точки зрения допущений метода ввода при разработке и публикации приложений.

Во-первых, при разработке приложений для Google TV помните о навигационных ограничениях d-pad: пользователи не могут легко пропустить элементы, нет диагонального эквивалента и он не эмулирует навигационные средства с несколькими касаниями. Например, если в вашем интерфейсе в настоящее время есть ряд элементов, два из которых наиболее распространены слева и справа, для удобного доступа большими пальцами, эти два элемента могут быть неудобно разделены для обычного пользователя Google TV. Другими словами, обратите внимание на управление порядком навигации.

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

В-третьих, в Android Market используются фильтры для предотвращения отображения приложений на определенных устройствах на основе явных элементов в файле манифеста. Кроме того, некоторые элементы определены неявно. Одним из них является сенсорный. Если у вас нет записи для касания, фильтр предположит, что касание требуется. Когда это будет сделано, эти приложения не будут отображаться для Google TV. Чтобы ваше приложение отображалось, вы должны установить для обязательного атрибута записи <used-feature> значение false, например:

1
<uses-feature android:name=»android.hardware.touchscreen» android:required=»false» />

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

Если ваше приложение использует библиотеки C / C ++ и Android Native Development Kit (NDK), вы столкнетесь с проблемами. На данный момент нет поддержки NDK для Google TV. Продолжайте спрашивать об этом, потому что он снова и снова появлялся в Google IO как запрос разработчика, и именно запросы разработчиков получают новые функции в дорожной карте для будущих выпусков.

Поскольку эмулятор еще не доступен с настоящим изображением Google TV Android, мы можем протестировать только эффекты с более высоким разрешением экрана и с помощью приложения с сенсорным экраном.

Самый простой способ сделать это — создать новый AVD с помощью Android 3.1, API Level 12, использовать разрешение 1920×1080 (или 1280×720) и использовать для сенсорного экрана значение false. Производительность эмуляторов может затруднить это, но, по крайней мере, вы можете понять, как будет выглядеть экран и как будет работать навигация или ваше приложение без касания.

До Android Market и предстоящей лавины приложений для устройств Google TV еще несколько месяцев. Тем не менее, вы можете использовать это время для подготовки ваших приложений для этих новых устройств. Ориентация на устройства Google TV довольно проста: просто выберите правильную версию Android SDK (Honeycomb) и тщательно продумайте макеты, графику и элементы навигации. Обеспечьте плавную альтернативную функциональность для функций сенсорного экрана и телефонии, которые недоступны на этих устройствах. Вы также будете готовы к тому, чтобы ваше приложение появилось на рынке для устройств Google TV, как только оно попадет в руки пользователей.

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

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