电视应用程序的开发与手机和平板电脑具有相同的结构,这就意味着你可以稍微修改你现在已经开发好的程序,然后运行在电视上面,或者根据你已经掌握的android开发知识去创建开发TV应用。
==注意:== 你开发的TV应用程序必须满足google play 特定的规范要求才可以发布
本节讨论如何修改现有的Android应用程序在电视设备上运行,或者创建一个新的应用程序。如果你已经开发有一个android的应用,你可以使用现有的程序架构通过添加对android TV的支持并重新设计一个用户界面。
**==温馨提示:==**我们建议有一个应用同时支持移动设备和电视设备,如果你需要为移动设备和电视设备单独开发应用,你可以在Google Play同一个列表发布多个不同设备的apk
下面是你应该用来创建在电视设备上运行的应用程序的主要组件:
在你创建TV应用之前,你必须:
想要在电视设备上运行的应用程序必须在其清单文件中声明电视的启动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用户界面。如果你正在开发一款手机应用程序(手机、可穿戴设备、平板电脑等),以及安卓电视,将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.
如果一个应用包含一个 Leanback launcher intent filter,它必须为每个本地化提供一个主屏幕Banner图像,这条Banner是应用程序的启动点,它出现在应用程序和游戏行的主屏幕上。在设计你的Banner,遵循在Banner中描述的设计需求。在你的应用程序中添加Banner,在清单中描述如下:
<application ... android:banner="@drawable/banner" > ...</application>
使用 android:banner 属性在 标签中为所有中的活动提供默认的Banner,或者使用< activity >标记为特定活动提供一条Banner。
当一个电视应用程序启动时,系统会显示一个类似于膨胀的圆的动画。我们可以定制这个动画的颜色,设置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/ 目录下,如下:
提示: 你不是必须要为你的电视应用程序使用这些支持库。然而,我们强烈建议使用它们,因此,使用leanback支持库的应用程序必须包括以下支持库:
完成上述步骤后,就该开始为大屏幕构建应用程序了! 看看这些其他的主题有帮助你建立你的电视应用:
运行应用程序是开发过程的重要部分。你可以在配置为支持USB调试的电视设备上运行你的应用程序,或者使用虚拟电视设备。
设置你的电视设备如下:
Android SDK中的AVD管理器提供了设备定义,允许您创建用于运行和测试应用程序的虚拟电视设备。
创建一个虚拟电视设备:
提示为最佳模仿电视的性能,启用使用主机GPU选项,在支持的地方使用虚拟设备的加速度。
博客地址:http://blog.yoqi.me/archives/4406
这篇文章还没有评论