Создайте и запустите телевизионное приложение

ТВ-приложения имеют ту же структуру, что и приложения для телефонов и планшетов. Это сходство означает, что вы можете модифицировать существующие приложения, чтобы они также работали на телевизионных устройствах, или создавать новые приложения на основе того, что вы уже знаете о создании приложений для 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) или более поздней версии.

Объявить телевизионную активность

Приложение, предназначенное для запуска на ТВ-устройствах, должно объявить в своем манифесте действие средства запуска для ТВ. Для этого он использует фильтр намерений 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 на ТВ-устройствах. Кроме того, если ваше приложение не имеет этого фильтра, когда вы используете инструменты разработчика для его загрузки на ТВ-устройство, приложение не отображается в пользовательском интерфейсе телевизора.

Пользовательский интерфейс вашего ТВ-приложения или телевизионная часть существующего приложения должны обеспечивать простой интерфейс для удобной навигации с помощью пульта дистанционного управления на расстоянии 10 футов. Если вы изменяете существующее приложение для использования на телевизоре, не используйте для телевидения тот же макет занятий, который вы используете для телефонов и планшетов. Рекомендации по разработке приложения для телевидения см. в разделе «Дизайн для телевидения» .

Объявить поддержку ТВ-устройств

Заявите, что ваше приложение создано для 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 в качестве точки запуска приложения используется значок или баннер, который появляется на главном экране в строках приложений и игр.

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

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

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

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

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

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

Изменить цвет лаунчера

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

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

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

Дополнительные сведения о работе с темами и стилями см. в разделе Стили и темы .

Создайте приложение для ОС Android TV.

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

Сочиняй для ТВ

Compose — рекомендуемый способ создания приложений для ОС Android TV. Помимо основных библиотек Compose, библиотеки Compose for TV предоставляют специальные компоненты, разработанные специально для большого экрана:

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

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

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

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

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

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

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

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

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

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

  1. В Android Studio выберите свой проект и нажмите «Выполнить». с панели инструментов.
  2. В окне «Выбор цели развертывания» выберите свое ТВ-устройство и нажмите «ОК» .

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

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

Чтобы создать виртуальное ТВ-устройство:

  1. Запустите AVD-менеджер. Дополнительные сведения см. в разделе Создание виртуальных устройств и управление ими .
  2. В диалоговом окне «Диспетчер AVD» перейдите на вкладку «Определения устройств» .
  3. Выберите одно из определений устройства Android TV и нажмите « Создать AVD» .
  4. Выберите параметры эмулятора и нажмите «ОК» , чтобы создать AVD.

    Примечание. Для обеспечения максимальной производительности устройства-эмулятора телевизора используйте эмулятор x86 и включите параметр «Использовать хост-графический процессор» . Также используйте ускорение виртуального устройства, если оно доступно. Дополнительные сведения об аппаратном ускорении эмулятора см. в разделе Настройка аппаратного ускорения для эмулятора Android .

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

  1. В Android Studio выберите свой проект и нажмите «Выполнить». с панели инструментов.
  2. В окне «Выбор цели развертывания» выберите устройство виртуального телевизора и нажмите «ОК» .

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

Включите ваше ТВ-приложение для мгновенного запуска

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

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

Затем в 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>

Ваше ТВ-приложение теперь настроено для мгновенной работы.

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

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