最近开始接触到Andorid TV编程,发现目前这方便的资料与比较还比较少,但现在随着产品与用户的升级,涉及到Android TV与 Android Watch的编程离我们越来越近了,本篇博客开始,将以笔记的方式记录我Android TV从零到有的一个过程。
本博客创建步骤主要参考Android官方文档。
Get Started with TV Apps
TV应用程序使用相同的结构与手机和平板电脑。这种相似性意味着你也可以修改现有的应用程序运行在TV设备或创建新的应用程序基于你现在已经掌握的Android技术开发应用。
本篇博客主要介绍如何准备您的开发环境,为开发电视应用程序,和最低要求的变化,使一个应用程序运行在电视设备上。
首先,我们需要使用以下两个重要的组件:
Activity for Tv(必须) - 在应用的manifest文件中,我们需要声明一个需运行在电视端的activity
Tv Support Libraries(可选) - 有几个相关的支持包,提供了一些电视设备相关的交互控件。
以上是最新官网内容:
运行在电视设备端的Activity需要声明CATEGORY_LEANBACK_LAUNCHER 意图过滤器声明,这样可以保证Google Play能够认定我们的app为电视版,同时,当我们在电视上选择我们的应用图标时,就会进入到我们声明CATEGORY_LEANBACK_LAUNCHER
的Activity与Android手机一致。
如下段代码,TvActivity将会展示在电视端,而MainActivity则会显示在手机或平板端。
<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>
如果你的应用要同时运行在手机、平板、以及电视设备上,需要将required属性设置为false,如果设置为true那么应用只能运行在使用Leanback UI的设备上。
以下代码示例展示了如何包含这个清单声明:
<manifest>
<uses-feature android:name="android.software.leanback"
android:required="false" />
...
</manifest>
运行在TV上的应用程序都是不依赖触摸屏输入,也可以理解为不支持触摸屏。为了明确这一点,我们需要声明android.hardware.touchscreen。
以下代码示例展示了如何包含这个清单声明:
<manifest>
<uses-feature android:name="android.hardware.touchscreen"
android:required="false" />
...
</manifest>
提示:
以上代码也是必须要声明的,以此来证明触摸屏功能不是必需的。同时为了让Google Play认定app是电视app,能让应用在电视设备上工作。
<application
...
android:banner="@drawable/banner" >
...
</application>
这里需要强调的是他的优先级大于 android:icon=”@mipmap/ic_launcher”
当我们加载一个app的时候,会显示一个圆形图标的加载动画,我们可以自定义其颜色。
通过android:colorPrimary设置特定颜色,另外还要设置两个额外的属性为true,代码如下:
<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下包含了一些用于Tv应用的支持库,这些支持库包含了一些用于Tv应用的UI控件,这些库位于<sdk>/extras/android/support/
目录下。以下是对这些库的说明:
注:你不需要使用这些支持库在你的TV应用程序里。但是,我们强烈建议你使用它们,特别是开发媒体相关的APP。
如果决定要使用v17 leanback library,应当注意,它是依赖v4 support library的,这意味着我们最终要包含如下库:
以上为官方推荐链接
用于娱乐
帮助用户查找电视上的内容
创建电视游戏
创建直播app
1、启动AVD管理,创建虚拟机.并点击Create Virtual Device
2、选择Category Tv,选择一个Android TV,然后点击“Next”
直至出现如下界面点击“Finish”完成模拟器创建,过程中如果SDK版本过低,会提示下载。
如果你的TV APPs无错误,在模拟器中显示如下。
通过键盘操作,现实中通过遥控操作。进入Apps界面显示如下:
看到如上界面,表示你已经成功的创建了一个Android TV项目,可安装到电视中试一试啦!
为了模拟电视遥控的操作,我们需要通过键盘来控制,键盘中上、下、左、右键,可以移动焦点,点击“Enter”键进入,点击“ESC”键退出。
原文:http://blog.csdn.net/zhanggang740/article/details/51958171