专栏名称: 程序员大咖
为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。
目录
相关文章推荐
51好读  ›  专栏  ›  程序员大咖

Android TV开发

程序员大咖  · 公众号  · 程序员  · 2017-11-10 10:24

正文

点击上方“ 程序员大咖 ”,选择“置顶公众号”

关键时刻,第一时间送达!

开始创建TV


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

==注意:== 你开发的TV应用程序必须满足google play 特定的规范要求才可以发布

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


建立一个TV项目


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

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

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

  • 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 认定为是一个电视应用程序。下面的代码示例显示了如何包含这个清单声明:







请到「今天看啥」查看全文