Приложения для телевизоров используют ту же структуру, что и приложения для телефонов и планшетов. Это сходство означает, что вы можете модифицировать свои существующие приложения, чтобы они также работали на телевизорах, или создавать новые приложения, основываясь на своих знаниях о разработке приложений для 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 на устройствах TV. Кроме того, если ваше приложение не содержит этот фильтр при загрузке на устройство TV с помощью инструментов разработчика, приложение не отобразится в пользовательском интерфейсе TV.
Пользовательский интерфейс вашего приложения для телевизора, или телевизионная часть существующего приложения, должен обеспечивать простой интерфейс для удобной навигации с помощью пульта дистанционного управления на расстоянии 3 метров. Если вы модифицируете существующее приложение для использования на телевизоре, не используйте для телевизора ту же компоновку действий, что и для телефонов и планшетов. Рекомендации по разработке приложения для телевизора см. в разделе «Дизайн для телевизора» .
Объявить о поддержке телевизионных устройств
Укажите, что ваше приложение разработано для 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 вашего приложения или активности для ТВ на определенный цвет. Также установите два атрибута transition overlap в 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 — это рекомендуемый способ создания приложений для ОС Android TV. Наряду с основными библиотеками Compose, библиотеки Compose for TV предоставляют специальные компоненты, разработанные специально для больших экранов:
Узнайте, как создать приложение для телевизора с помощью Compose for TV в статье «Использование Jetpack Compose на Android TV» .
Набор инструментов Leanback UI
Инструментарий Leanback UI предоставляет API и виджеты пользовательского интерфейса для телевизионных устройств:
-
androidx.leanback.app -
androidx.leanback.database -
androidx.leanback.graphics -
androidx.leanback.media -
androidx.leanback.preference -
androidx.leanback.system -
androidx.leanback.widget -
androidx.leanback.widget.picker
Узнайте, как создать приложение для просмотра телепередач с помощью инструментария Leanback UI в статье «Создание приложений для воспроизведения телепередач» .
Запуск ТВ-приложений
Запуск приложения — важная часть процесса разработки. Вы можете запускать приложение на телевизорах, настроенных на поддержку отладки по USB, или использовать виртуальные телевизоры.
Запуск на физическом устройстве
Настройте свой телевизор следующим образом:
- Для подключения телевизора к компьютеру разработчика используйте USB-кабель. При необходимости обратитесь к документации, предоставленной производителем вашего устройства.
- На вашем телевизоре перейдите в «Настройки» .
- В строке «Устройство» выберите «О программе ».
- Прокрутите до пункта «Сборка» и несколько раз выберите «Сборка» , пока не появится сообщение «Вы стали разработчиком!».
- Вернитесь в «Настройки» . В строке «Предпочтения» выберите «Параметры разработчика» .
- Выберите «Отладка» > «Отладка по USB» и нажмите «Вкл.» .
- Вернитесь на главный экран телевизора.
Чтобы протестировать ваше приложение на телевизоре:
- В Android Studio выберите свой проект и нажмите «Запустить».
с панели инструментов. - В окне «Выбор целевого устройства развертывания» выберите ваше телевизионное устройство и нажмите «ОК» .
Запуск на виртуальном устройстве
Менеджер AVD в Android SDK предоставляет определения устройств, позволяющие создавать виртуальные телевизионные устройства для запуска и тестирования ваших приложений.
Для создания виртуального телевизионного устройства:
- Запустите диспетчер AVD. Дополнительную информацию см. в разделе «Создание и управление виртуальными устройствами» .
- В диалоговом окне «Диспетчер AVD» перейдите на вкладку «Определения устройств» .
- Выберите одно из определений устройств Android TV и нажмите «Создать AVD» .
- Выберите параметры эмулятора и нажмите OK , чтобы создать AVD.
Примечание: Для оптимальной производительности эмулятора телевизора используйте эмулятор x86 и включите параметр « Использовать графический процессор хоста» . Также используйте аппаратное ускорение виртуальных устройств, если оно доступно. Дополнительную информацию об аппаратном ускорении эмулятора см. в разделе «Настройка аппаратного ускорения для эмулятора Android» .
Чтобы протестировать ваше приложение на виртуальном телевизоре:
- В Android Studio выберите свой проект и нажмите «Запустить».
с панели инструментов. - В окне «Выбор целевого объекта развертывания» выберите ваше виртуальное ТВ-устройство и нажмите «ОК» .
Для получения дополнительной информации об использовании эмуляторов см. раздел «Запуск приложений в эмуляторе 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>
Теперь ваше ТВ-приложение настроено для мгновенного просмотра.
Подготовьте ваше телевизионное приложение к публикации.
Ознакомьтесь с контрольным списком для приложений для ТВ, чтобы узнать о дальнейших шагах по подготовке вашего приложения для ТВ к публикации и распространению.