安卓TV开发《1》TV入门

  • Post author:
  • Post category:其他




前言

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



一、智能TV简介

在这里插入图片描述



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模拟器即可。

在这里插入图片描述



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的效果。

在这里插入图片描述



四、补充



1、安卓TV支持的编码器、协议和格式



2、androidX支持库

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



The end



版权声明:本文为qq_38350635原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。