Разработка Android TV: грядут большие экраны, будьте готовы!
Опубликовано: 2022-03-11Google хочет внедрить Android во все, от телефонов и часов до автомобилей и смарт-телевизоров. Прежде всего, в интересах полного раскрытия информации, я должен сказать, что я несколько предвзят, когда речь идет о платформах Smart TV, так что давайте не будем об этом. Я думаю, что большинство, если не все платформы Smart TV на рынке просто ужасны, но это только я. Google думает, что может работать лучше, и я склонен верить, что он действительно может добиться большего, или, по крайней мере, я надеюсь, что это возможно, как потребитель, так и технический энтузиаст.
Так что же такое Android TV? Многие путают его с Google TV, несуществующей платформой, выпущенной в 2010 году. Она была разработана Google, Sony, Intel и Logitech, но так и не получила распространения. В середине 2014 года она была официально заменена Android TV, и эта новая платформа намного интереснее как для потребителей, так и для разработчиков.
В отличие от Google TV, Android TV намного ближе к стандартному Android. Он работает под управлением Android 5.0 (по крайней мере, в начальной версии запуска) и может использоваться как на новых телевизорах, так и на автономных устройствах. Это хорошая новость, поскольку Android TV в конечном итоге появится на недорогих коробках и флешках Android TV, что обеспечит одинаковый пользовательский опыт для миллионов старых телевизоров. На самом деле первое устройство с Android TV — это вовсе не телевизор, а Google Nexus Player. Это также устраняет одну из самых больших жалоб, предъявлявшихся в прошлом к различным платформам Smart TV: отсутствие согласованности. Android TV должен обеспечить почти идентичный пользовательский интерфейс для всех совместимых устройств.
Революцию не будут показывать по телевидению, ее будут транслировать
Что касается новых функций, Android TV также поддерживает Google Cast. Возможно, вы знакомы с Google Cast по флешке Chromecast. Эта технология уже поддерживается сотнями приложений и сервисов, и скоро их станет еще больше. Google Cast позволяет устройствам Android TV получать потоковое содержимое с различных устройств. Внедрение с помощью API Google Cast выполняется просто, и вы найдете всю необходимую информацию на сайте разработчиков Google Cast.
Означает ли это, что Google хочет превратить кабельные компании в «тупые трубы» и просто использовать их пропускную способность, а не контент? Не совсем, но все возможно, тем более, что платформы Smart TV распространяются.
Однако потоковая передача — не единственный козырь Google.
Android TV также открывает новые возможности для общения, игр, домашней автоматизации и многого другого. Android TV может стать центром для всех видов подключенных устройств, работающих под управлением Android или других платформ. Вы можете использовать его, чтобы увидеть, кто находится у двери, настроить кондиционер или подключенный термостат, возможно, даже синхронизировать светодиодные лампочки RGB с телевизором во время просмотра классических боевиков 80-х.
Конечно, некоторые из этих вещей могут показаться бесполезными, но Android TV не для уловок; это не будет нишевая платформа, как Android Wear или Android Auto. Не так давно умные телевизоры и смартфоны покупали только энтузиасты, но к настоящему времени обычные телефоны и традиционные телевизоры почти исчезли. Android TV появится на телевизорах в миллионах домов; в этом нет никаких сомнений.
Это хорошая новость для разработчиков Android, поскольку пользовательская база, несомненно, будет быстро расти, что снизит риск перехода на новую платформу для разработки приложений для Android TV.
Android TV – что под капотом?
Что касается аппаратного обеспечения, мы увидим стандартные для Android экраны FHD (1080p) и UHD (3840x2160). Также есть хороший шанс, что некоторые производители когда-нибудь в будущем представят Android TV для изогнутых устройств 21:9, но в настоящее время основное внимание будет уделено панелям 16:9. Дизайнеры пользовательского интерфейса должны помнить об этом.
Поскольку он основан на Android 5.0 (уровень API 21) и использует ART, большинство аппаратных средств Android TV будут оснащены 64-разрядными процессорами. Nexus Player основан на процессоре Intel Atom, многие будущие Android TV будут оснащены процессором MediaTek MT5595, а консоль Nvidia Shield, о которой я уже рассказывал в предыдущем посте, использует процессор Tegra X1. Предложения Intel и Nvidia System-on-Chip (SoC) основаны на 64-битных ядрах ЦП, а MediaTek использует 32-битные ядра Cortex-A17 и Cortex-A7.
Все аппаратное обеспечение Android TV должно будет поддерживать декодирование HEVC и VP9, и есть вероятность, что большинство этих чипов будут способны обрабатывать несколько потоков, отличных от UHD, одновременно. Доставка UHD-контента со скоростью 60 кадров в секунду также не должна быть проблемой. На борту также имеется быстрая двухдиапазонная беспроводная связь, обеспечивающая достаточную пропускную способность для потоков UHD.
Аппаратные платформы Android TV будут опираться на большое количество промежуточного программного обеспечения и будут соответствовать множеству стандартов вещания, чтобы охватить все регионы и рынки.
В оборудовании нет ничего экзотического, и разработчикам не о чем беспокоиться. Большая часть ДНК Android 5.0 обеспечивает плавный переход на программном уровне, но следует помнить о некоторых вещах.
Android выходит на большой экран
Что все это значит для разработчиков? Разработка Android TV звучит просто, но беглый взгляд на спецификацию не дает полной картины. Хотя многие разработчики и дизайнеры должны чувствовать себя как дома, они также должны убедиться, что пользователи чувствуют себя как дома — в конце концов, Android TV предназначен для гостиной.
Начнем с хороших новостей. Большинство устройств Android TV будут использовать панели 16:9 всего в двух разрешениях, поэтому многое будет стандартизировано. Это поможет улучшить согласованность и несколько облегчит тестирование.
- Работает в одном соотношении сторон, 16:9 (хотя в будущем могут появиться устройства 21:9).
- Проектирование для двух разрешений, FHD и UHD, только плотность меняется в зависимости от размера экрана.
- Использование множества стандартизированных элементов пользовательского интерфейса.
- Не нужно думать о сенсорном вводе.
- Не так много датчиков, с которыми приходится иметь дело.
- Энергоэффективность значения не имеет.
Однако при разработке приложений для Android TV возникает ряд новых проблем, которые необходимо решить. Поскольку на самом телевизоре нет сенсорного ввода (хотя для ввода можно было использовать планшеты и телефоны), нам придется иметь дело с другими способами ввода, такими как пульты дистанционного управления, сторонние блоки airmouse, клавиатуры, игровые контроллеры и т. д. . Есть также много устаревших вещей Android, которые нужно убрать (например, нет портретного режима). Различия в плотности пикселей намного больше, отсутствие сенсорного ввода может быть проблематичным для некоторых разработчиков и так далее.
Вот некоторые из проблем:
- Поддержка нескольких контроллеров одновременно.
- Поддержка различных типов контроллеров, т. е. стандартных пультов и игровых контроллеров.
- Мало датчиков на борту.
- Overscan может быть проблемой на некоторых устройствах.
- Существенно разная плотность пикселей даже при одинаковом разрешении (телевизоры бывают гораздо большего размера, чем планшеты и телефоны).
- Удалите ненужные элементы.
Давайте подробнее рассмотрим некоторые из этих вопросов. Поскольку Android-телевизоры будут использоваться в качестве медиа-центров, есть вероятность, что люди захотят использовать на них более одного контроллера. Некоторым может понадобиться клавиатура Bluetooth, в то время как другие могут получить два игровых контроллера для некоторых многопользовательских действий. Хорошей новостью является то, что вам, вероятно, не понадобится собственный код для реализации поддержки дополнительных входов контроллера, поскольку стандартный ввод игрового контроллера Android можно использовать для пользовательского интерфейса и приложений, таких как игры. Однако вам может потребоваться адресация более чем одного устройства ввода, и в случае, если вам нужно добавить поддержку более экзотических контроллеров, может потребоваться некоторая настройка.
Большинство Android-телевизоров будут поставляться с ограниченным набором сенсоров. Зачем вам нужен GPS на телевизоре? Вот почему необходимо отключить поддержку аппаратных функций, недоступных на телевизионных устройствах. Там много подробной информации, как во всем разобраться; в основном, просто пометьте неподдерживаемые датчики как ложные , и все.
Вам также необходимо просмотреть манифест приложения Android и проверить, будет ли он исключать устройства Android TV из-за отсутствия у них функций.
Например, стандартное разрешение ACCESS_FINE_LOCATION
использует GPS. Поскольку на борту нет GPS, манифест вашего приложения должен включать следующее:
<uses-feature android:name="android.hardware.gps" android:required="false"/>
Поэтому вам нужно будет изменить ACCESS_FINE_LOCATION
на ACCESS_COARSE_LOCATION
. Тот же принцип применим и к другим аспектам платформы, и подробности доступны в Google. Еще один ресурс, который вы, возможно, захотите проверить, — это Руководство разработчика Android TV от Nvidia.

Если вы думаете о повторном использовании материалов из других проектов Android, об этом стоит помнить, иначе вы можете столкнуться с приложением, которое пытается открыть меню в портретном режиме на телевизоре, что подводит меня к следующему пункту:
10-футовый пользовательский интерфейс Android TV
Хотя Android TV в основном представляет собой Android 5.0, пользовательский интерфейс имеет мало общего со стандартным Android, каким мы его знаем. Платформы Smart TV используют «10-футовый» подход, который в основном означает, что взаимодействие с пользователем оптимизировано для 10 футов от экрана, что примерно в десять раз больше, чем на смартфоне или планшете.
Концепция «10 футов» появилась раньше, чем платформы Smart TV. Он также использовался в дизайне экранного меню (OSD), дизайне приборной панели игровой консоли и обычно использовался в основных системах объемного звучания 5.1. Так что же это значит для пользовательского опыта и дизайна пользовательского интерфейса?
Ну, дизайнеры должны убедиться, что все выглядит нормально на различных панелях, от недорогих 37-дюймовых телевизоров 1080p до 65-дюймовых или 75-дюймовых монстров в UHD. Пользовательский интерфейс должен хорошо работать в форматах FHD и UHD независимо от размера экрана. Хотя мы имеем дело всего с парой разных разрешений, плотность пикселей (пикселей на дюйм или ppi) сильно различается.
Вот несколько примеров:
- 42-дюймовая панель UHD — 105 пикселей на дюйм
- 42-дюймовая панель FHD — 52 ppi
- 50-дюймовая панель UHD — 88 пикселей на дюйм
- 50-дюймовая панель FHD — 44 ppi
- 55-дюймовая панель UHD — 80 пикселей на дюйм
- 65-дюймовая UHD-панель — 67 пикселей на дюйм
- 32-дюймовая панель FHD — 69 пикселей на дюйм
Маловероятно, что мы увидим UHD-панели на Android-телевизорах с размерами панелей в диапазоне 30-40 дюймов, но мы должны увидеть много FHD-устройств, работающих в этом сегменте. Многие потребители просто пойдут и купят новые приставки Android TV, а не заменят существующие телевизоры 1080p. Хотя многие производители телевизоров начнут использовать панели 4K на моделях с диагональю 40+ дюймов, разработчикам все еще нужно подумать о поддержке устаревших моделей.
Вот почему мы должны помнить, что пересканирование может быть проблемой. Многие телевизоры, оснащенные телеприставками Android TV, потеряют некоторую площадь экрана по направлению к лицевой панели. Любой, кто знаком с видео, уже знает кое-что о безопасных фреймах (безопасность действий и безопасность титров); это возврат к временам телевизоров с ЭЛТ стандартной четкости, но по-прежнему рекомендуется оставаться в безопасности и избегать размещения каких-либо важных элементов пользовательского интерфейса рядом с краем. Постарайтесь, чтобы по крайней мере 5 процентов области были свободны от какого-либо важного контента, и используйте еще более безопасный запас для действительно важных элементов пользовательского интерфейса; 10 процентов должны помочь, но если вы хотите быть в полной безопасности, вы можете пойти и дальше.
Имейте в виду, что эта конкретная проблема не существует на планшетах или смартфонах. К счастью, это не означает, что Google не принял это во внимание, поэтому в Android TV встроена поддержка избыточного сканирования (да и в других версиях Android после 4.2.x). Если вы думаете об использовании OpenGL, вам также необходимо решить эту проблему.
Overscan вряд ли будет проблемой для настоящих Android-телевизоров, но может стать серьезной проблемой для неоригинальных решений Android TV. Не все хотят обновлять свой телевизор каждые несколько лет, и вместо этого многие люди получат переходник HDMI за 50 долларов с Android TV. Вот почему рекомендуется включить параметры конфигурации за пределами экрана в ваше приложение для Android TV.
Еще одна хорошая идея — ознакомиться с рекомендациями Google по поддержке нескольких экранов. Это просто, но важно; скорее всего, вам потребуется включить дополнительные «совместимые экраны» в манифест приложения.
Улучшение пользовательского опыта Android TV
Пользовательский опыт всегда был проблемой для платформ Smart TV. Android TV — это Google TV, сделанный правильно, и он должен улучшить UX, но не «из коробки»; разработчикам придется сделать много тяжелой работы.
Хорошая новость заключается в том, что телевизоры на самом деле не требуют большого участия пользователя; любой домосед это подтвердит! Производители телевизоров уже потратили годы на полировку интерфейсов своих смарт-телевизоров и улучшение взаимодействия с пользователем с помощью более быстрых, элегантных интерфейсов и нового оборудования, такого как новые сенсорные пульты дистанционного управления. Дела шли хорошо и без Android TV, но новая платформа Google открывает больше возможностей.
Я уже сказал, что я немного скептик смарт-ТВ, но даже я должен признать, что за последние пару лет был достигнут большой прогресс. Однако Android TV предназначен не только для улучшения того, как люди потребляют телевизионный контент, но и для изменения того, как они это делают.
Если вы относитесь к тому типу пользователей, которые просто любят смотреть много спорта и политики за один раз (как мой скучающий папа на пенсии), UX — это запоздалая мысль. То же самое касается таких людей, как я, которые держат телевизор включенным в фоновом режиме, слушая новости или музыку, как если бы они делали это с помощью древнего лампового радиоприемника. Однако то, как многие люди потребляют видеоконтент, резко изменилось за последние 10-15 лет, сначала с цифровыми видеомагнитофонами, а теперь с потоковой передачей. Современные подростки растут в окружении подключенных устройств и ожидают от телевизора даже большего, чем миллениалы.
Конечная цель любой платформы Smart TV, которая до сих пор казалась неуловимой, — создать новый пользовательский опыт, максимально органично сочетая традиционное телевидение с видео по запросу и другими типами контента. Лично я не думаю, что кто-то сделал это правильно до сих пор. Google может, но это еще предстоит выяснить. Многое будет зависеть от сторонних разработчиков. Им придется следовать ряду рекомендаций, чтобы обеспечить хороший UX на всех типах оборудования Android TV, от переходников HDMI за 50 долларов до телевизоров высокого класса за 5000 долларов.
Поскольку я не являюсь поклонником современных платформ Smart TV, перечисление того, что необходимо сделать для создания идеального пользовательского опыта, может быть, по меньшей мере, самонадеянным. Тем не менее, эксперты по пользовательскому интерфейсу и UX склонны соглашаться в некоторых моментах:
- Смарт-телевизоры по-прежнему остаются просто телевизорами — они в основном используются для просмотра видеоконтента, а не для выполнения миллиона различных действий, которые мы уже делаем на наших мобильных телефонах и планшетах.
- Методы ввода должны улучшаться — пульты дистанционного управления эволюционировали, но они все еще недостаточно хороши для сложного пользовательского интерфейса. Использование смартфонов и планшетов в качестве альтернативных способов ввода по-прежнему считается вызывающим и требует большей простоты.
- Управление жестами — его можно реализовать в некоторых ситуациях, но, поскольку мы имеем дело с пассивным пользовательским интерфейсом, это мало что изменит.
- Несколько пользователей — телевизоры не являются личными устройствами в большинстве домохозяйств, поэтому забудьте о входе в систему, это будет только раздражать пользователей.
- Если он исправен, не чините его — традиционные радио и телевидение по-прежнему обеспечивают очень приятный пользовательский опыт благодаря своей простоте и удобству, поэтому нет необходимости изобретать велосипед.
- Делайте все просто — старайтесь свести взаимодействие с пользователем к абсолютному минимуму, используя как можно меньше кликов.
- Выберите чистый, минимальный пользовательский интерфейс — только потому, что у вас есть много недвижимости, с которой можно поиграть, вам не нужно использовать ее всю.
В конечном счете, разработчики Android TV могут сделать не так много; партнерам Google и Android TV остается создать отличный пользовательский интерфейс. Сторонние разработчики будут просто использовать его, расширять функциональность, обеспечивая единообразие работы на нескольких устройствах. Если базовая платформа страдает от проблем с прорезыванием зубов или несоответствий, разработчики должны творить чудеса со связанными за спиной руками.