Как создать и запустить ТВ-приложение

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

Важно! Чтобы приложение для Android TV было допущено к публикации в Google Play, оно должно соответствовать определенным требованиям. Подробнее о требованиях к качеству ТВ-приложений…

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

Информацию о том, как разрабатывать приложения для телевизоров, можно найти в разделе Дизайн для телевизоров. Также ознакомьтесь с примерами приложений в репозитории Android TV на GitHub.

Как определить, поддерживается ли формат медиаконтента

Информацию о кодеках, протоколах и форматах, поддерживаемых Android TV, можно найти в следующих документах:

Как настроить проект для телерекламы

В этом разделе рассказывается, как настроить проект для телевизора, если вы адаптируете существующее приложение Android для работы на телевизорах или создаете новое ТВ-приложение. Если у вас уже есть приложение Android, добавление поддержки Android TV позволит вам создать пользовательский интерфейс для телевизора, используя существующую архитектуру приложения.

При создании приложения для телевизоров используются два основных компонента:

  • Действие для телевизора. В манифесте приложения объявите действие, которое будет выполняться на телевизорах.
  • Библиотеки для телевизоров. При необходимости добавьте одну или несколько библиотек AndroidX, доступных для телевизоров и перечисленных в другом разделе этого руководства. Эти библиотеки содержат виджеты для создания пользовательских интерфейсов.

Требования

Прежде чем начать разработку приложения для телевизора, выполните следующие действия:

  • Обновите инструменты SDK до версии 24.0.0 или более новой.
    Обновленные инструменты SDK позволяют создавать и тестировать приложения для телевизоров.
  • Обновите SDK до версии Android 5.0 (API 21) или более поздней.
    В обновленной версии платформы появились новые API для приложений для телевизоров.
  • Создайте или обновите проект приложения.
    Чтобы получить доступ к новым API для ТВ-устройств, создайте проект или измените существующий проект, который поддерживает Android 5.0 (уровень API 21) или более поздние версии.

Как объявить активность для телевизора

Приложение, предназначенное для работы на телевизорах, должно объявлять в манифесте объект Activity для запуска на телевизоре. Для этого используется фильтр intent CATEGORY_LEANBACK_LAUNCHER. Этот фильтр указывает, что приложение можно использовать на телевизоре, и позволяет Google Play определить его как ТВ-приложение. Когда пользователь выбирает приложение на главном экране телевизора, этот интент определяет, какое действие нужно запустить.

В следующем фрагменте кода показано, как добавить этот фильтр интентов в манифест:

<application
  android:banner="@drawable/banner" >
  ...
  <activity
    android:name="com.example.android.MainActivity"
    android:label="@string/app_name" >

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>

  <activity
    android:name="com.example.android.TvActivity"
    android:label="@string/app_name"
    android:theme="@style/Theme.Leanback">

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>

  </activity>
</application>

Второй элемент манифеста в этом примере указывает, что это действие нужно запустить на телевизоре.

Внимание! Если вы не добавите фильтр намерений CATEGORY_LEANBACK_LAUNCHER в свое приложение, оно не будет показываться пользователям, которые запускают Google Play на телевизорах. Кроме того, если при загрузке приложения на телевизор с помощью инструментов разработчика в нем не будет этого фильтра, оно не появится в пользовательском интерфейсе телевизора.

Интерфейс приложения для телевизора или его раздела должен быть интуитивно понятным и позволять управлять им с помощью пульта ДУ с расстояния 3 метров. Если вы адаптируете существующее приложение для телевизора, не используйте для него тот же макет, что и для телефонов и планшетов. Рекомендации по разработке приложений для телевизоров приведены в разделе Дизайн для телевизоров.

Как заявить о поддержке устройств Android TV

Укажите, что ваше приложение предназначено для Android TV, добавив функцию android.software.leanback.

Если ваше приложение работает на мобильных устройствах и телевизорах, задайте для атрибута required значение false. Если вы зададите для атрибута required значение true, Google Play будет показывать ваше приложение только на устройствах с ОС Android TV.

<manifest>
    <uses-feature android:name="android.software.leanback"
        android:required="false" />
    ...
</manifest>

Как указать, что сенсорный экран не требуется

Приложения, предназначенные для телевизоров, не должны полагаться на сенсорные экраны для ввода данных. Чтобы это было понятно, в манифесте приложения для телевизора должно быть указано, что функция android.hardware.touchscreen не является обязательной. Этот параметр указывает, что приложение может работать на телевизоре, и необходим, чтобы оно считалось ТВ-приложением в Google Play. В следующем примере кода показано, как добавить эту декларацию в манифест:

<manifest>
    <uses-feature android:name="android.hardware.touchscreen"
              android:required="false" />
    ...
</manifest>

Внимание! В манифесте приложения необходимо указать, что сенсорный экран не требуется, как показано в примере кода ниже. В противном случае приложение не будет показываться в Google Play на устройствах с Android TV.

Значок и баннер на главном экране

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

Чтобы добавить их в приложение, опишите значок и баннер в манифесте следующим образом:

<application
    ...
    android:icon="@mipmap/ic_launcher"
    android:banner="@drawable/banner" >
    ...
</application>

Значок на главном экране

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

Используйте атрибут android:banner с тегом <application>, чтобы задать баннер по умолчанию для всех действий приложения, или с тегом <activity>, чтобы задать баннер для определенного действия.

Для баннера используйте ресурс XHDPI размером 320 x 180 пикселей. Текст должен быть включен в изображение. Если приложение доступно на нескольких языках, вам нужно предоставить отдельные версии баннера с текстом на каждом из них.

Как изменить цвет панели запуска

Внимание! В Android 12 и более поздних версиях пользовательские анимации заставки, созданные с помощью платформенного API SplashScreen, не поддерживаются в приложениях для Android TV.

Когда запускается ТВ-приложение, система показывает анимацию, напоминающую расширяющийся заполненный круг. Чтобы настроить цвет этой анимации, задайте для атрибута android:colorPrimary ТВ-приложения или действия определенный цвет. Также задайте для двух атрибутов перекрытия перехода значение true, как показано в следующем фрагменте XML-файла ресурса темы:

<resources>
    <style name="MyTheme">
      <item name="android:colorPrimary">@color/primary</item>
      <item name="android:windowAllowReturnTransitionOverlap">true</item>
      <item name="android:windowAllowEnterTransitionOverlap">true</item>
    </style>
</resources>

Подробнее о том, как работать с темами и стилями…

Как создать приложение для Android TV OS

Jetpack включает библиотеки пакетов androidx, которые можно использовать в приложениях для телевизоров.

Compose for TV

Мы рекомендуем использовать Compose для создания приложений для Android TV OS. Библиотеки Compose для телевизоров содержат компоненты, специально разработанные для больших экранов.

Узнайте, как создать ТВ-приложение с помощью Compose for TV, в разделе Использование Jetpack Compose на Android TV.

Набор инструментов для создания интерфейса Leanback

Набор инструментов Leanback UI содержит API и виджеты интерфейса для телевизоров:

Узнайте, как создать ТВ-приложение с помощью набора инструментов Leanback UI, в разделе Создание приложений для воспроизведения на телевизоре.

Запускать ТВ-приложения.

Запуск приложения – важная часть процесса разработки. Вы можете запустить приложение на телевизорах, настроенных для отладки по USB, или на виртуальных телевизорах.

Запуск на физическом устройстве

Настройте телевизор следующим образом:

  1. Подключите устройство Android TV к компьютеру для разработки с помощью USB-кабеля. При необходимости обратитесь к документации производителя устройства.
  2. На устройстве Android TV откройте Настройки.
  3. В строке Устройство выберите Об устройстве.
  4. Прокрутите экран до пункта Сборка и несколько раз выберите Сборка, пока не появится сообщение "Теперь вам доступны функции для разработчиков".
  5. Вернитесь к настройкам. В строке Настройки выберите Для разработчиков.
  6. Выберите Отладка > Отладка по USB и нажмите Включить.
  7. Вернитесь на главный экран телевизора.

Чтобы протестировать приложение на телевизоре:

  1. В Android Studio выберите проект и нажмите Run (Запустить) на панели инструментов.
  2. В окне Select Deployment Target (Выберите целевое устройство) выберите телевизор и нажмите OK.

Запуск на виртуальном устройстве

Менеджер AVD в Android SDK содержит определения устройств, которые позволяют создавать виртуальные устройства Android TV для запуска и тестирования приложений.

Чтобы создать виртуальное устройство, выполните следующие действия:

  1. Запустите Менеджер AVD. Подробнее о том, как создавать виртуальные устройства и управлять ими…
  2. В диалоговом окне Менеджера AVD нажмите на вкладку Device Definitions (Определения устройств).
  3. Выберите одно из определений устройства Android TV и нажмите Создать AVD.
  4. Выберите параметры эмулятора и нажмите OK, чтобы создать AVD.

    Примечание. Чтобы эмулятор телевизора работал максимально эффективно, используйте эмулятор x86 и включите параметр Использовать GPU хоста. Также используйте ускорение виртуального устройства, если оно доступно. Подробнее о настройке аппаратного ускорения для эмулятора Android…

Чтобы протестировать приложение на виртуальном устройстве Android TV:

  1. В Android Studio выберите проект и нажмите Run (Запустить) на панели инструментов.
  2. В окне Select Deployment Target (Выберите целевое развертывание) выберите виртуальное устройство и нажмите OK.

Подробнее о том, как запускать приложения в эмуляторе Android… Подробнее о том, как развертывать приложения из Android Studio на виртуальных устройствах, рассказывается в статье Отладка приложения.

Как включить мгновенный запуск приложения для телевизора

Мгновенный запуск позволяет пользователям попробовать ваше ТВ-приложение без установки. Это может помочь увеличить количество установок.

Чтобы настроить ТВ-приложение так, чтобы оно запускалось как приложение с мгновенным запуском на устройстве Android TV или в эмуляторе, сначала выполните инструкции по созданию набора App Bundle с поддержкой мгновенного запуска.

Затем в файле intent-filter приложения для телевизора MainActivity убедитесь, что в AndroidManifest.xml объявлены LAUNCHER и LEANBACK_LAUNCHER:

<activity
    android:name="com.example.android.MainActivity"
    android:label="@string/app_name" >

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>
  </activity>

Теперь ваше ТВ-приложение настроено как приложение с мгновенным запуском.

Как подготовить ТВ-приложение к публикации

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