安卓TV开发《1》TV入门

安卓TV开发《1》TV入门

前言

安卓开发不仅限于 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 界面中。

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">

// 添加这个category

3、Leanback 支持

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

android:required="false" />

...

4、声明触屏为非必须条件

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

android:required="false" />

...

5、提供主屏幕横幅

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

...

android:banner="@drawable/banner" >

...

6、run app

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

四、补充

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

支持的媒体格式DRMandroid.drmExoPlayerandroid.media.MediaPlayer

2、androidX支持库

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

The end

相关推荐

微信消息到底多久之内可以撤回?官方终于回应了
365bet线上足球

微信消息到底多久之内可以撤回?官方终于回应了

📅 07-26 👁️ 5686
iv是什么软件哪个公司研发的
365bet网络娱乐

iv是什么软件哪个公司研发的

📅 07-14 👁️ 8282
Windows 10轻松开启硬件加速:解锁电脑性能新境界!
365足球体育亚洲版

Windows 10轻松开启硬件加速:解锁电脑性能新境界!

📅 07-08 👁️ 5437
去巴西 有人踢球 有人说球 五大世界杯解说员
365bet线上足球

去巴西 有人踢球 有人说球 五大世界杯解说员

📅 08-15 👁️ 776
世界杯十大守门员排行榜
365足球体育亚洲版

世界杯十大守门员排行榜

📅 08-03 👁️ 6523
为什么qq不能打卡(qq打卡能不能补签)
365bet线上足球

为什么qq不能打卡(qq打卡能不能补签)

📅 08-09 👁️ 7921
绿甲是什么装备lol
365足球体育亚洲版

绿甲是什么装备lol

📅 07-21 👁️ 8166
縮減 Excel 電子表格的檔案大小
365bet线上足球

縮減 Excel 電子表格的檔案大小

📅 07-30 👁️ 446
厮辏的意思
365bet网络娱乐

厮辏的意思

📅 08-10 👁️ 1302