https://developer.android.com/training/tv/start/start.html#run

开始创建TV

电视应用程序的开发与手机和平板电脑具有相同的结构,这就意味着你可以稍微修改你现在已经开发好的程序,然后运行在电视上面,或者根据你已经掌握的android开发知识去创建开发TV应用。

==注意:== 你开发的TV应用程序必须满足google play 特定的规范要求才可以发布,有关更多信息,请参见 TV App Quality所列出的需求



确定你的电视所支持的媒体格式

请参阅下面的文档,了解Android TV支持的多媒体编码格式、协议和格式的信息。


建立一个TV项目

本节讨论如何修改现有的Android应用程序在电视设备上运行,或者创建一个新的应用程序。如果你已经开发有一个android的应用,你可以使用现有的程序架构通过添加对android TV的支持并重新设计一个用户界面。

**==温馨提示:==**我们建议有一个应用同时支持移动设备和电视设备,如果你需要为移动设备和电视设备单独开发应用,你可以在Google Play同一个列表发布多个不同设备的apk。请看Multiple APK Support.

下面是你应该用来创建在电视设备上运行的应用程序的主要组件:

  • Activity for TV(需要)-在您的应用程序清单中,声明要在电视设备上运行的activity。
  • TV Support Libraries(可选)-这里有几个支持库可用于TV设备,用于提供构建用户界面的小部件。


预备工作

在你创建TV应用之前,你必须:

  • 将您的SDK工具更新到版本24.0.0或更高版本 更新的SDK工具使您能够为电视构建和测试应用程序。
  • 更新SDK到Android 5.0(API 21)或更高版本 更新平台版本到支持新的api
  • 创建或更新应用程序项目 为了访问新的TV设备api,您必须创建一个项目或修改一个现有项目,目标是Android 5.0(API level 21)或更高版本。


声明一个用于电视应用的activity

想要在电视设备上运行的应用程序必须在其清单文件中声明电视的启动activity。它使用CATEGORY_LEANBACK_LAUNCHER intent filter来完成这个任务,这个filter可以识别你的应用程序是否支持电视,同时让谷歌Play将其识别为一个电视应用程序。当用户在他们的电视屏幕上选择你的应用程序时,此意图确定要启动哪个活动。

下面的代码片段展示了如何在您的清单中包含这个 intent filter:

<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 intent filter。用户在电视上运行google play 是看不见你的应用的。 同样,如果你的应用程序没有这个filter 当你使用开发者工具将它载入电视设备时,这款应用不会出现在电视用户界面上。

如果你正在修改一个现有的应用程序用于电视,你的应用程序中不应该使用为手机和平板电脑设计的布局文件。你的电视应用程序的用户界面(或你现有应用程序的电视部分)应该为简单的导航提供一个更简单的接口,以便与从沙发上使用遥控远程控制。关于设计电视应用的指导方针,看电视设计指南。有关电视界面布局的最低实现要求的更多信息,请参阅电视的建筑布局



声明Leanback支持

声明你的应用程序使用安卓电视需要的Leanback用户界面。如果你正在开发一款手机应用程序(手机、可穿戴设备、平板电脑等),以及安卓电视,将required 属性值设置为false,如果你设置required 的属性值为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>

==注意==:在你的应用程序清单中,您必须声明不需要触摸屏,如本示例代码所示;否则,你的应用不会出现在电视设备上的谷歌paly.



提供一个主屏幕Banner

如果一个应用包含一个 Leanback launcher intent filter,它必须为每个本地化提供一个主屏幕Banner图像,这条Banner是应用程序的启动点,它出现在应用程序和游戏行的主屏幕上。在设计你的Banner,遵循在Banner中描述的设计需求。在你的应用程序中添加Banner,在清单中描述如下:

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

    ...
</application>

使用 android:banner 属性在 标签中为所有中的活动提供默认的Banner,或者使用< activity >标记为特定活动提供一条Banner。



改变launcher 的颜色

当一个电视应用程序启动时,系统会显示一个类似于膨胀的圆的动画。我们可以定制这个动画的颜色,设置android:colorPrimary 这个属性的值为你的app或者activity以特定的颜色启动。您还应该将两个额外的过渡重叠属性设置为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 SDK包含了用于电视应用程序的支持库。这些库为电视设备提供api和用户界面部件。这些库位于/extras/android/support/ 目录下,如下:

  • - v17 leanback library -为电视应用提供用户界面部件,特别是用于媒体播放的应用程序。
  • - v7 recyclerview library-提供以内存有效的方式管理长列表显示的类。v17 leanback库中的几个类依赖于这个库中的类。
  • v7 cardview library-为显示信息卡提供用户界面部件,如媒体项目图片和描述。

提示: 你不是必须要为你的电视应用程序使用这些支持库。然而,我们强烈建议使用它们,因此,使用leanback支持库的应用程序必须包括以下支持库:

  • v4 support library
  • v7 recyclerview support library
  • v17 leanback support library v17 leanback库包含了一些资源,这些资源需要特定的步骤将库导入到应用程序项目中。有关导入带有资源的支持库的说明,请参见支持库设置


Build TV apps

完成上述步骤后,就该开始为大屏幕构建应用程序了! 看看这些其他的主题有帮助你建立你的电视应用:

  • 建立电视播放软件 电视是用来娱乐的,所以Android提供了一套用户界面工具和小工具,用来制作播放视频和音乐的电视应用程序,让用户浏览他们想要的内容。
  • 帮助用户在电视上找到你的内容 -所有的内容选择在用户的指尖,帮助他们找到他们喜欢的内容几乎和提供内容一样重要。这个培训讨论如何在电视设备上显示你的内容。
  • 建立电视游戏 -电视设备是一个很好的游戏平台。关于为电视建立伟大的游戏体验的信息,请参阅这个主题。
  • 建立电视频道 -将你的视频内容呈现在一个线性的“广播电视”风格中,你的用户可以通过一个程序指南和频道的上/下按钮访问


运行电视应用程序

运行应用程序是开发过程的重要部分。你可以在配置为支持USB调试的电视设备上运行你的应用程序,或者使用虚拟电视设备。



在真机上运行

设置你的电视设备如下:

  1. 使用USB数据线将你的电视设备连接到你的开发机器上。如果需要,请参考设备制造商提供的文档。
  2. 使用遥控器安menu键,按出菜单框。
  3. 输入对应的键码,如1999,按出工厂菜单。
  4. 向下滚动选择数据调试,进入打开数据调试开关,现在“您现在是一个开发人员!”
  5. 断电开机就可以在调试窗口看见打印。


运行在虚拟设备上

Android SDK中的AVD管理器提供了设备定义,允许您创建用于运行和测试应用程序的虚拟电视设备。

创建一个虚拟电视设备:

  1. 启动AVD管理器。有关更多信息,请参见AVD Manager帮助。
  2. 在AVD Manager对话框中,单击设备定义选项卡。
  3. 选择一个Android电视设备定义并单击Create AVD。
  4. 选择模拟器选项并单击OK创建AVD。   

提示为最佳模仿电视的性能,启用使用主机GPU选项,在支持的地方使用虚拟设备的加速度。有关仿真器硬件加速的更多信息,请参见使用模拟器。 在虚拟电视设备上测试你的应用:

  1. 在Android Studio中,选择您的项目并从工具栏上单击Run。
  2. 在 Select Deployment Target 窗口中,选择您的虚拟电视设备,并单击OK。 有关使用模拟器的更多信息,请参见使用模拟器。有关在Android Studio中部署应用程序到虚拟设备的更多信息,请参见Android Studio的调试

© 著作权归作者所有

  • 分类:工作日志
  •  
  • 字数:2704