Контрольные списки ТВ-приложений
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Пользователям нравится работа с ТВ-приложениями, когда они последовательны, логичны и предсказуемы. Они должны иметь возможность перемещаться по вашему приложению и по Android TV, не теряясь и не «сбрасывая» пользовательский интерфейс и не начиная все заново. Пользователи ценят понятные, красочные и функциональные интерфейсы, которые делают процесс работы волшебным. Помня об этих идеях, вы можете создать приложение, которое прекрасно впишется в Android TV и будет работать так, как ожидают пользователи.
Эти контрольные списки охватывают основные аспекты разработки как приложений, так и игр, чтобы гарантировать, что ваше приложение будет работать максимально эффективно. Дополнительные рекомендации, касающиеся только игр, описаны в разделе «Игры» .
Критерии, по которым приложение Android TV может распространяться через Google Play, см. в разделе «Качество ТВ-приложения» .
Поддержка форм-фактора телевизора
Эти пункты контрольного списка применимы к играм и приложениям.
Дизайн пользовательского интерфейса
Эти пункты контрольного списка применимы к играм и приложениям.
- Укажите действия с альбомной ориентацией, установив
android: screenOrientation ="landscape"
. - Предоставьте соответствующие ресурсы макета для ландшафтного режима.
- Убедитесь, что текст и элементы управления достаточно велики, чтобы их было видно на расстоянии.
- Предоставляйте растровые изображения и значки высокого разрешения для экранов HDTV.
- Убедитесь, что ваши значки и логотип соответствуют спецификациям Android TV.
- Разрешите переразвертку в макете.
- При активном воспроизведении мультимедиа, инициируемом пользователем, не допускайте перехода устройства в режим Ambient .
- Убедитесь, что каждый элемент пользовательского интерфейса работает как с D-pad, так и с игровыми контроллерами. См. разделы «Навигация по телевизору» и «Управление аппаратным обеспечением телевизора» .
- Меняйте фоновое изображение , когда пользователи просматривают контент.
- Настройте цвет фона в соответствии с вашим фирменным стилем во фрагментах Leanback.
- Убедитесь, что для вашего пользовательского интерфейса не требуется сенсорный экран. См. раздел «Сенсорный экран» и «Объявить, что сенсорный экран не требуется» .
- Следуйте рекомендациям по эффективной рекламе .
- Чтобы помочь пользователю принять ряд решений, используйте пошаговый API библиотеки Leanback.
Поиск и обнаружение контента
Эти пункты контрольного списка применимы к играм и приложениям.
- Предоставьте результаты поиска из вашего приложения в окне глобального поиска Android TV.
- Предоставьте поля данных , специфичные для телевизора, для поиска.
- Убедитесь, что ваше приложение отображает обнаруженный контент на экране сведений , который позволяет пользователю немедленно начать просмотр контента.
Главный экран телевизора
Эти элементы контрольного списка относятся к макету и содержимому главного экрана .
Каналы
- Укажите осмысленное имя, отражающее содержимое канала. Не используйте название вашего приложения в качестве названия канала.
- Не меняйте название канала, если не происходит никакого взаимодействия с пользователем.
- Включите соответствующий значок для каждого канала. Значок не обязательно должен совпадать с значком вашего приложения; это может быть фирменное представление контента канала.
- Сделайте каждый канал уникальным и не имитируйте функциональность строки «Воспроизвести далее». Например, разрешение пользователям продолжать просмотр видео с того места, где они остановились, не является допустимым использованием канала.
Контент в каналах
- Ограничьте каждую программу на канале одним фрагментом контента. Программа не должна содержать коллекцию видео.
- Не используйте программы для рекламных сообщений или рекламы.
- Включите подходящее описание для каждой программы и правильно сопоставьте ее метаданные. Например, рейтинг контента не должен появляться там, где ожидается заголовок.
- Не обрезайте и не растягивайте изображения предварительного просмотра, представляющие содержимое программы. Они должны соответствовать одному из доступных соотношений сторон .
- Начните воспроизведение программы, как только пользователь ее выберет.
Играть дальше
- Не добавляйте контент в строку «Воспроизвести далее», если пользователь каким-либо образом не взаимодействовал с ним. Например, вы можете добавить следующий эпизод в серию, которую в данный момент смотрит пользователь, но не добавляйте связанную, но другую серию, когда пользователь завершает текущую серию.
- Ограничьте содержимое Play Next традиционными телешоу, фильмами или событиями. Не добавляйте клипы в строку «Воспроизвести далее».
Приложения для воспроизведения
Эти элементы контрольного списка применимы к приложениям, выполняющим воспроизведение мультимедиа.
Игры
Эти пункты контрольного списка применимы к играм.
- Установите флаг
isGame
в манифесте, чтобы ваша игра отображалась в разделе игр на главном экране . - Убедитесь, что поддержка игрового контроллера не зависит от кнопок «Пуск», «Выбор» или «Меню». Не все контроллеры имеют эти кнопки.
- Используйте стандартное изображение геймпада без специального обозначения контроллера, чтобы отобразить назначения игровых кнопок .
- Проверьте подключение к Ethernet и Wi-Fi.
- Предоставьте пользователям простой способ выхода из вашего приложения.
Распространить на Android TV
Чтобы узнать, как распространять ТВ-приложения на Android TV, ознакомьтесь с подробным руководством по публикации ТВ-приложений в Google Play .
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 UTC."],[],[],null,["# TV apps checklists\n\nUsers enjoy the TV app experience when it is consistent, logical, and predictable.\nThey should be able to navigate within your app and throughout Android TV without getting lost or\nhaving to \"reset\" the UI and start over. Users appreciate clear, colorful, and functional interfaces\nthat make the experience magical. With these ideas in mind, you can create an app that fits nicely\nin Android TV and performs as users expect.\n\n\nThese checklists cover the main aspects of development for both apps and games\nto help ensure that your app provides the best possible experience. Additional considerations\nfor games only are covered in the [Games](#games) section.\n\n\nFor the criteria that qualify an Android TV app to be distributed through Google Play, see\n[TV app quality](/docs/quality-guidelines/tv-app-quality).\n\nTV form factor support\n----------------------\n\nThese checklist items apply to games and apps.\n\n- Identify the [main TV activity](/training/tv/get-started/create#tv-activity) with the [CATEGORY_LEANBACK_LAUNCHER](/reference/android/content/Intent#CATEGORY_LEANBACK_LAUNCHER) filter in the manifest.\n- Provide a [home screen banner](/training/tv/get-started/create#banner) for each language supported by your app, with the following characteristics:\n - Banner measures 320x180 px.\n - Banner resource is in the `drawables/xhdpi` directory.\n - Banner image includes localized text to identify the app.\n- Consider whether your app needs to prevent the device from entering [Ambient Mode](/training/tv/playback/ambient-mode). This is particularly relevant for media [playback apps](#playback-apps).\n- Don't [declare a requirement](/training/tv/get-started/hardware#declare-hardware-requirements) for hardware that might be unsupported.\n- Make sure your [permissions](/training/tv/get-started/hardware#hardware-permissions) don't imply hardware requirements.\n\nUser interface design\n---------------------\n\nThese checklist items apply to games and apps.\n\n- Specify activities with landscape orientation by setting `android:`[screenOrientation](/guide/topics/manifest/activity-element#screen)`=\"landscape\"`.\n- Provide appropriate [layout resources](/training/tv/playback/leanback/layouts#structure) for landscape mode.\n- Make sure that [text and controls](/training/tv/playback/leanback/layouts#visibility) are large enough to be visible from a distance.\n- Provide [high-resolution bitmaps and icons](/training/tv/playback/leanback/layouts#density-resources) for HDTV screens.\n- Make sure your icons and logo conform to Android TV specifications.\n- Allow for [overscan](/training/tv/playback/leanback/layouts#overscan) in your layout.\n- When actively playing user-initiated media playback, prevent the device from entering [Ambient Mode](/training/tv/playback/ambient-mode).\n- Make sure every UI element works with both D-pad and game controllers. See [TV navigation](/training/tv/get-started/navigation) and [Handle TV hardware](/training/tv/get-started/hardware#controllers).\n- Change the [background image](/training/tv/playback/leanback/browse#background) as users browse through content.\n- Customize the [background color](/training/tv/playback/leanback/card) to match your branding in Leanback fragments.\n- Make sure that your UI does not require a touchscreen. See [Touchscreen](/training/tv/get-started/hardware#no-touchscreen) and [Declare touchscreen not required](/training/tv/get-started/create#no-touchscreen).\n- Follow the [guidelines for effective advertising](/training/tv/playback/leanback/layouts#advertising).\n- To guide the user through a series of decisions, use the Leanback library's [guided step API](/training/tv/playback/leanback/guided-step).\n\nSearch and content discovery\n----------------------------\n\nThese checklist items apply to games and apps.\n\n- Provide [search results](/training/tv/discovery/searchable#provide) from your app in the Android TV global search box.\n- Provide TV-specific [data fields](/training/tv/discovery/searchable#columns) for search.\n- Make sure your app presents discovered content in a [details screen](/training/tv/discovery/searchable#details) that lets the user start watching the content immediately.\n\nTV home screen\n--------------\n\n\nThese checklist items apply to the layout and content of the [home screen](/training/tv/discovery/recommendations-channel).\n\n### Channels\n\n- Provide a meaningful name that represents the channel's content. Don't use your app's name as a channel name.\n- Don't change the channel name unless there is some interaction with the user.\n- Include an associated icon for each channel. The icon doesn't need to be your app's exact icon; it can be a branded representation of the content in the channel.\n- Make each channel unique, and don't mimic the functionality of the Play Next row. For example, letting users continue watching where they left off in a video is not a valid use for a channel.\n\n### Content in channels\n\n- Limit each program in a channel to a single piece of content. A program must not contain a collection of videos.\n- Don't use programs for promotional messages or ads.\n- Include a suitable description for each program, and map its metadata correctly. For example, the content rating must not appear where the title is expected.\n- Don't crop or stretch preview images representing program content. They must fit one of the available [aspect ratios](/training/tv/discovery/preview-videos).\n- Start playing a program as soon as the user selects it.\n\n### Play Next\n\n- Don't add content to the Play Next row unless the user has been interacting with it some way. For example, you can add the next episode in a series that the user is currently watching, but don't add a related but different series when the user completes the current series.\n- Limit Play Next content to traditional TV shows, movies, or events. Don't add clips to the Play Next row.\n\nPlayback apps\n-------------\n\nThese checklist items apply to apps that perform media playback.\n\n- [Register a media session](/guide/topics/media-apps/working-with-a-media-session) to inform the platform of media playback state and to let playback controls be delegated to the app.\n- Set the [`FLAG_KEEP_SCREEN_ON`](/reference/android/view/WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON) flag while video is playing on the screen to [prevent the\n device from entering standby or Ambient Mode during playback](/training/tv/playback/ambient-mode#preventing-ambient-mode).\n- Validate that media commands accurately expose metadata and control playback using [Media Controller Test](https://github.com/googlesamples/android-media-controller) and the [Media Session\n Validator](https://developers.google.com/cast/docs/android_tv_receiver/mediasession_validator).\n- Comply with the [Ambient mode-related quality\n guidelines.](/docs/quality-guidelines/tv-app-quality#ambient-mode) Ambient Mode keeps users quietly entertained between watch sessions and prevents screen burn in.\n- Profile your app's memory and make sure to check [`ActivityManager.isLowRamDevice()`](/reference/android/app/ActivityManager#isLowRamDevice()) for discovering low-RAM devices. For those devices, you must follow the requirements in the [Optimize memory usage guidelines](/training/tv/playback/memory).\n\nGames\n-----\n\nThese checklist items apply to games.\n\n- Set the `isGame` flag in the manifest so that your game appears in the games section of the [home screen](/training/tv/games#Launcher).\n- Make sure [game controller\n support](/training/tv/games#control) doesn't depend on the Start, Select, or Menu buttons. Not all controllers have these buttons.\n- Use a generic gamepad graphic, without specific controller branding, to show [game button mappings](/training/tv/games#control).\n- Check for both ethernet and Wi-Fi [connectivity](/training/basics/network-ops/reading-network-state).\n- Provide users with a clean way to [exit](/training/tv/games#exit) your app.\n\nDistribute to Android TV\n------------------------\n\n\nTo learn how to distribute to Android TV, see the\n[detailed guide for publishing TV apps on Google\nPlay](/training/tv/publishing/distribute)."]]