安卓TV开发《1》TV入门

前言

安卓开发不仅限于 android phone开发,还包括 android wear、android car app、android things等一系列安卓设备。在这里结合官方文档以及自己遇见的坑总结下。帮助大家少踩点坑。嘿嘿!!!

一、智能TV简介

安卓TV开发《1》TV入门_第1张图片

1、 简介

如果你用过智能电视你就会发现这个页面是比较常见的,和手机的home一样,他就是常见智能电视机的home页。
1、上述的Apps 、Play Next、Play Movie &TV 你可以理解为不同的频道
2、每个频道内部都有许多卡片,这些卡片就是不同的节目
3、其实我们开发一款app也可以吧app添加到频道,这时系统的桌面会在频道行末尾再添加一个我们自己的频道行。
4、我们还可以为频道添加节目卡片,同时这些节目卡片还可以添加到 watch next 系统频道中。也就是同一个节目可以添加到不同的频道。

2、TV优点

Android 提供了针对在大屏设备(如高清电视)上运行的应用进行优化的丰富用户体验。TV 应用带来了新的体验,让用户可以舒服地躺在沙发上愉悦地享受。

二、模拟器 & Hello World

TV不像手机,人手一台。所以要写demo模拟器就是必选装备啦。
ps:模拟器和真机还是有区别的,千万不要依赖模拟器,比如真机TV是没有GPS硬件的然而模拟器模拟提供了GPS硬件。(有关TV不支持的硬件功能后面会总结)

1、模拟器

这个很简单,作为安卓开发者想必模拟器的创建大家都熟悉了吧,这里我们使用studio的AVD模拟个TV模拟器即可。

安卓TV开发《1》TV入门_第2张图片

2、Hello World

其实,手机项目的hello world项目就 so easy 啦!这里我们就创建个手机项目即可,一样可以运行在TV智能电视上。后面我们再修改这个项目,使他成为个真正的TV项目。

三、TV应用入门

1、同是安卓设备,所以我们可以根据自身所掌握的安卓知识来构建TV应用。我们也可以根据TV设计的规则来拓展当前的app,使其支持TV设备。但是TV 与手机和平板电脑设备在用户交互模式上差异很大。手机平板一般通过触摸屏来进行交互。但是TV上您必须设计新的布局,并且只需使用方向键和选择按钮便可完成导航(因为TV使用遥控器)。
2、下面就把我们的手机版hello world 改为合格的TV应用.

1、必须满足条件
  • 将您的 SDK 工具更新为 24.0.0 或更高版本
  • 将您的 SDK 平台更新为 Android 5.0 (API 21) 或更高版本

ps:如果你的版本较低可以参考这里按步骤修改

2、把Activity声明为TV Activity

1、声明:很简单,给我们的activity添加一个category即可(LEANBACK_LAUNCHER,具体参看下xml代码)
2、解释:intent过滤器可将您的应用标识为支持 TV 模式,并让 Google Play 将其识别为 TV 应用。这个category就是个重要的标识。

ps:注意:如果您不在应用中包含 CATEGORY_LEANBACK_LAUNCHER intent 过滤器,那么用户在 TV 设备上运行 Google Play 时将看不到您的应用。此外,如果您的应用没有此过滤器,那么当您使用开发者工具将其加载到 TV 设备上时,该应用不会出现在 TV 界面中。

  <activity
            android:name=".MainActivity"
            android:banner="@drawable/app_icon_your_company"
            android:icon="@drawable/app_icon_your_company"
            android:label="@string/app_name"
            android:logo="@drawable/app_icon_your_company"
            android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.intent.category.LAUNCHER"/>
                // 添加这个category 
                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
            </intent-filter>
        </activity>
3、Leanback 支持

Android TV 要求满足Leanback 界面设计规则。如果您要开发一款在移动设备(手机、穿戴式设备、平板电脑等)以及 Android TV 上都可运行的应用,请将 required 属性值设为 false。如果您将 required 属性值设为 true。表名您的应用将只能在使用 Leanback 界面的设备上运行。

 <manifest>
        <uses-feature android:name="android.software.leanback"
            android:required="false" />
        ...
    </manifest>
4、声明触屏为非必须条件

TV不支持触摸屏硬件。您必须在应用清单中声明触摸屏并非必备条件(如本示例代码中所示),否则您的应用将不会出现在 TV 设备上的 Google Play 中。

 <manifest>
        <uses-feature android:name="android.hardware.touchscreen"
                  android:required="false" />
        ...
    </manifest>
5、提供主屏幕横幅

1、当你的应用设置了 Leanback 启动器(android.intent.category.LEANBACK_LAUNCHER)你还需要提供一张banner图片。banner可以设置在application节点,也可以单独设置给每个activity节点。
2、横幅建议为 xhdpi 资源,尺寸为 320 x 180 像素。
3、banner出现位置主屏幕的应用游戏行中的应用启动点。

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

        ...
    </application>
6、run app

经过上述更改后你的app就差不多成为一个合格的TV应用了。是不是和手机桌面的图标优点差异,哈哈这就是banner的效果。

安卓TV开发《1》TV入门_第3张图片

四、补充

1、安卓TV支持的编码器、协议和格式
  • 支持的媒体格式
  • DRM
  • android.drm
  • ExoPlayer
  • android.media.MediaPlayer
2、androidX支持库

Jetpack 包含用于 TV 应用的 androidx 软件包库。这些库为 TV 设备提供了 API 和用户界面微件。

The end

你可能感兴趣的