是的,手机/平板电脑和 Android TV 应用程序可以有一个 APK 文件,因为电视应用程序使用与手机和平板电脑相同的结构。这种相似性意味着您可以修改现有应用程序,使其也可以在电视设备上运行,或者根据您对构建 Android 应用程序的了解来创建新应用程序。
在开始构建电视应用程序之前,您必须:
将您的 SDK 工具更新到版本 24.0.0 或更高版本。更新的 SDK 工具使您能够构建和测试电视应用程序。
使用 Android 5.0 (API 21) 或更高版本更新您的 SDK。更新后的平台版本为电视应用程序提供了新的 API。
创建或更新您的应用程序项目。为了访问电视设备的新 API,您必须创建一个项目或修改面向 Android 5.0(API 级别 21)或更高版本的现有项目。
- 宣布电视活动
打算在电视设备上运行的应用程序必须在其清单中使用CATEGORY_LEANBACK_LAUNCHER http://developer.android.com/reference/android/content/Intent.html#CATEGORY_LEANBACK_LAUNCHER意图过滤器。此过滤器会将您的应用识别为支持电视,并且是您的应用在 Google Play 中被视为电视应用所必需的。声明此意图还可以确定当用户在电视主屏幕上选择其图标时要启动应用程序中的哪个活动。
如果您正在修改现有应用程序以在电视上使用,则您的应用程序不应使用与手机和平板电脑相同的活动布局。电视应用程序(或现有应用程序的电视部分)的用户界面应提供更简单的界面,可以使用沙发上的遥控器轻松导航。有关设计电视应用程序的指南,请参阅电视设计指南 http://developer.android.com/design/tv/index.html。有关电视界面布局最低实现要求的更多信息,请参阅构建电视布局。 http://developer.android.com/training/tv/start/layouts.html
以下代码片段展示了如何将此意图过滤器包含在清单中:
<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>
- 声明 Leanback 支持
声明您的应用使用 Android TV 所需的 Leanback 用户界面。如果您正在开发在移动设备(手机、可穿戴设备、平板电脑等)以及 Android TV 上运行的应用程序,请将所需的属性值设置为 false。如果您将必需的属性值设置为 true,您的应用程序将仅在使用 Leanback UI 的设备上运行。
<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>
- 提供主屏幕横幅
如果应用程序包含 Leanback 启动器意图过滤器,则它必须为每个本地化提供主屏幕横幅。横幅是出现在主屏幕上的应用程序和游戏行中的应用程序启动点。清单中的横幅描述如下:
<application
...
android:banner="@drawable/banner" >
...
</application>
将 android:banner 属性与标记一起使用可为所有应用程序活动提供默认横幅,或与标记一起使用为特定活动提供横幅。
See Banners http://developer.android.com/design/tv/patterns.html#banner在电视 UI 模式设计指南中。
- 添加电视支持库
Android SDK 包含旨在与电视应用程序一起使用的支持库。这些库提供了可在电视设备上使用的 API 和用户界面小部件。这些库位于/extras/android/support/目录中。以下是库及其一般用途的列表:
-
v17 Leanback 库 http://developer.android.com/tools/support-library/features.html#v17-leanback- 为电视提供用户界面小部件
应用程序,尤其是进行媒体播放的应用程序。
-
v7 recyclerview 库 http://developer.android.com/tools/support-library/features.html#v7-recyclerview- 提供管理显示的类
以内存有效的方式存储长列表。中的几个班级
v17 Leanback 库依赖于该库中的类。
-
v7 卡片视图库 http://developer.android.com/tools/support-library/features.html#v7-cardview- 提供用户界面小部件
显示信息卡,例如媒体项目图片和
描述。