Android笔记:浅析Android电视APP开发

TV应用程序使用相同的结构与手机和平板电脑。这种相似性意味着你也可以修改现有的应用程序运行在TV设备或创建新的应用程序基于你现在已经掌握的Android技术开发应用。

1、创建Android TV工程

本篇博客主要介绍如何准备您的开发环境,为开发电视应用程序,和最低要求的变化,使一个应用程序运行在电视设备上。

首先,我们需要使用以下两个重要的组件:

Activity for Tv(必须) - 在应用的manifest文件中,我们需要声明一个需运行在电视端的activity

Tv Support Libraries(可选) - 有几个相关的支持包,提供了一些电视设备相关的交互控件。

1.1开发环境
Android笔记:浅析Android电视APP开发_第1张图片

1.2声明一个TV Activity(Set up a TV Project)

运行在电视设备端的Activity需要声明CATEGORY_LEANBACK_LAUNCHER 意图过滤器声明,这样可以保证Google Play能够认定我们的app为电视版,同时,当我们在电视上选择我们的应用图标时,就会进入到我们声明CATEGORY_LEANBACK_LAUNCHER的Activity与Android手机一致。

如下段代码,TvActivity将会展示在电视端,而MainActivity则会显示在手机或平板端。


    <intent-filter>

      <category android:name="android.intent.category.LAUNCHER">
    category>action>intent-filter>
  activity>



    <intent-filter>

      <category android:name="android.intent.category.LEANBACK_LAUNCHER">
    category>action>intent-filter>

  activity>
application>

注意:

如果我们的app中不包含CATEGORY_LEANBACK_LAUNCHER 意图过滤的Activity,那么电视端的Google Play store不会显示我们的应用,同时,我们用开发工具在电视端或AVD中调试时,我们的应用图标也不会出现在电视桌面上。

如果你正在修改一个现有的应用程序在电视上使用,你的应用程序不应该使用相同的Activity布局电视,它仅仅适用于手机和平板电脑。

TV应用程序的用户界面(或T V部分现有的应用程序)应该提供一个更简单的接口,可以很容易地从沙发上导航使用和远程控制。

1.3声明Leanback支持

如果你的应用要同时运行在手机、平板、以及电视设备上,需要将required属性设置为false,如果设置为true那么应用只能运行在使用Leanback UI的设备上。

以下代码示例展示了如何包含这个清单声明:


    "android.software.leanback" android:required="false">
    ...

1.4声明不可触屏(Declare touchscreen not required)

运行在TV上的应用程序都是不依赖触摸屏输入,也可以理解为不支持触摸屏。为了明确这一点,我们需要声明android.hardware.touchscreen。

以下代码示例展示了如何包含这个清单声明:


    "android.hardware.touchscreen" android:required="false">
    ...

提示:
以上代码也是必须要声明的,以此来证明触摸屏功能不是必需的。同时为了让Google Play认定app是电视app,能让应用在电视设备上工作。

1.5提供一个主屏幕图标(Provide a home screen banner)
这里需要强调的是他的优先级大于 android:icon=”@mipmap/ic_launcher”

1.6修改加载图颜色(Change the launcher color)

当我们加载一个app的时候,会显示一个圆形图标的加载动画,我们可以自定义其颜色。
通过android:colorPrimary设置特定颜色,另外还要设置两个额外的属性为true,代码如下:


2添加TV支持库(Add TV Support Libraries)

Android SDK下包含了一些用于Tv应用的支持库,这些支持库包含了一些用于Tv应用的UI控件,这些库位于/extras/android/support/ 目录下。以下是对这些库的说明:

v17 leanback library -提供了一些专门用于媒体播放控件。 v7 recyclerview library-提供了以内存效率更高的方式来管理列表展示的类。同时v17 leanback
library中的一些类也要依赖此库。 v7 cardview library-包含了用来展示信息卡片的控件。
注:你不需要使用这些支持库在你的TV应用程序里。但是,我们强烈建议你使用它们,特别是开发媒体相关的APP。

如果决定要使用v17 leanback library,应当注意,它是依赖v4 support library的,这意味着我们最终要包含如下库:

v4 support library v7 recyclerview support library v17 leanback support library

3.创建TV APPs教程(Build TV Apps)

Android笔记:浅析Android电视APP开发_第2张图片

4,运行 TV APPs(Run TV Apps)

4.1 创建 TV 模拟器

1、启动AVD管理,创建虚拟机.并点击Create Virtual Device
Android笔记:浅析Android电视APP开发_第3张图片

2、选择Category Tv,选择一个Android TV,然后点击“Next”

Android笔记:浅析Android电视APP开发_第4张图片

直至出现如下界面点击“Finish”完成模拟器创建,过程中如果SDK版本过低,会提示下载。

Android笔记:浅析Android电视APP开发_第5张图片

模拟器中调试

如果你的TV APPs无错误,在模拟器中显示如下。
Android笔记:浅析Android电视APP开发_第6张图片
通过键盘操作,现实中通过遥控操作。进入Apps界面显示如下:
Android笔记:浅析Android电视APP开发_第7张图片

看到如上界面,表示你已经成功的创建了一个Android TV项目,可安装到电视中试一试啦!

最后简单说明一下如何在模拟器中操作

为了模拟电视遥控的操作,我们需要通过键盘来控制,键盘中上、下、左、右键,可以移动焦点,点击“Enter”键进入,点击“ESC”键退出。

你可能感兴趣的:(Android)