TV 应用核对清单
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
只有稳定、顺畅且可预测的 TV 应用体验才能让用户享受其中。
他们应该能够在您的应用和整个 Android TV 中导航,不会迷失方向,也不必“重置”界面并重新开始。用户喜欢一目了然、色彩明丽、功能丰富的界面,这样的界面能够给人美妙的体验。秉持这样的理念,您就能够打造出与 Android TV 完美契合并符合用户期望的出色应用。
这些核对清单涵盖了应用和游戏开发的主要方面,以帮助您打造出具有最佳体验的应用。游戏部分介绍了仅适用于游戏的其他注意事项。
如需了解 Android TV 应用要通过 Google Play 分发需要满足的条件,请参阅 TV 应用质量。
电视设备类型支持
以下核对清单项目适用于游戏和应用。
界面设计
以下核对清单项目适用于游戏和应用。
搜索和内容发现
以下核对清单项目适用于游戏和应用。
-
在 Android TV 全局搜索框中提供来自您的应用的搜索结果。
-
提供特定于 TV 的搜索数据字段。
-
确保应用在详情屏幕中呈现找到的内容,让用户能够立即开始观看这些内容。
TV 主屏幕
以下核对清单项目适用于主屏幕的布局和内容。
频道
- 提供一个能够代表频道内容的有意义的名称。请勿使用应用名称作为频道名称。
- 除非频道与用户进行某些交互,否则请勿更改频道名称。
- 为每个频道添加关联的图标。该图标不需要与应用的图标完全一致,它可以是频道内容的品牌形象展示。
- 使每个频道都独一无二,不要模仿“接下来播放”行的功能。例如,让用户从视频暂停位置继续观看的频道不是频道的有效用法。
频道内容
- 将频道中的每个节目限制为包含单独一条内容。一个节目不得包含多个视频的集合。
- 请勿使用节目来发布推广信息或广告。
- 为每个节目添加适当的说明,并正确映射其元数据。例如,内容分级不能出现在应该显示标题的位置。
- 请勿剪裁或拉伸代表节目内容的预览图片。它们必须符合一个可用的宽高比。
- 在用户选择节目后立即开始播放。
接下来播放
- 除非用户以某种方式与“接下来播放”行进行交互,否则不要向该行添加内容。例如,您可以添加用户当前正在观看的电视剧的下一集,但当用户观看完当前的电视剧后,请勿添加相关(但不同)的电视剧。
- 将“接下来播放”内容限制为传统的电视节目、影片或节目。请勿在“接下来播放”行中添加视频剪辑。
播放应用
以下核对清单项目适用于执行媒体播放的应用。
游戏
以下核对清单项目适用于游戏。
-
在清单中设置
isGame
标志,以便您的游戏显示在主屏幕的游戏部分中。
-
确保游戏控制器支持不依赖于“开始”“选择”或“菜单”按钮。并非所有控制器都有这些按钮。
-
使用通用的游戏手柄图片(没有具体的控制器品牌)来显示游戏按钮映射。
-
检查以太网以及 WLAN 连接。
-
为用户提供简单明了的应用退出方式。
分发到 Android TV 平台
如需了解如何分发到 Android TV,请参阅有关在 Google Play 上发布 TV 应用的详细指南。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-27。
[null,null,["最后更新时间 (UTC):2025-07-27。"],[],[],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)."]]