前言

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

  <activityandroid: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支持的编码器、协议和格式
  • 支持的媒体格式
  • DRM
  • android.drm
  • ExoPlayer
  • android.media.MediaPlayer
2、androidX支持库

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

The end

安卓TV开发《1》TV入门相关推荐

  1. apple tv 开发_Apple TV首批#madewithunity游戏发售

    apple tv 开发 We are super excited to share several awesome Unity games shipping for Apple TV on day o ...

  2. Android(安卓)开发零基础入门课程【笔记】

    此文章是根据B站的视频教程整理总结的笔记,用白话说明一些Android开发的入门知识,共勉. B站教程链接:https://www.bilibili.com/video/BV13y4y1E7pF?p= ...

  3. 安卓驱动开发!从入门到精通系列Android高级工程师路线介绍,架构师必备技能

    开头 大家好,我是G哥,目前人在荆州办事,但是干货还是要安排上! 国外有一个爆火的开发人员学习路线,目前已经在 Github收获了 131 k+ star,Star 数量在 Github 所有仓库中排 ...

  4. 安卓app开发零基础入门培训!腾讯Android开发面试记录,技术详细介绍

    开头 都说程序员是在吃青春饭,这一点的确有一点对的成分,以前我不这么认为,但随着年龄的增长,事实告诉我的确是这样的,过了30以后,就会发现身体各方面指标下降,体力和身心上都多少有点跟不上了,这个年龄往 ...

  5. 安卓TV开发(九) Android模拟事件 遥控器变身成鼠标来操作TV

    本文出处:http://blog.csdn.net/sk719887916/article/details/40348853,作者:skay      阅读此文建议先阅读 安卓Tv开发(二)移动智能电 ...

  6. 安卓TV开发(三) 移动智能设备之实现主流TV电视盒子焦点可控UI

    前言:移动智能设备的发展,推动了安卓另一个领域,包括智能电视和智能家居,以及可穿戴设备的大量使用,但是这些设备上的开发并不是和传统手机开发一样,特别是焦点控制和用户操作体验上有很大的区别,本系列博文主 ...

  7. 安卓TV开发《2》开发TV应用

    本节将会总结下TV开发中的注意点,如何管理TV控制器,如何构建TV布局.如何创建TV导航. 一.处理TV硬件 为啥要处理TV硬件呢?因为TV不像其他安卓设备一样支持触摸屏,照相机.GPS之类的.这些硬 ...

  8. 安卓TV开发(八) 移动智能终端多媒体爬虫技术 获取加载网页视频源

    转载请标明出处:http://blog.csdn.net/sk719887916/article/details/40049137,作者:skay 从上一篇学习中,学习了多媒体技术中的怎么去用josu ...

  9. 安卓TV开发(五) 移动智能终端UI之实现主流TV焦点可控UI

       载请标明出处: http://blog.csdn.net/sk719887916 ,作者: skay    由于其他网站收录,导致你无法查看本系列原创文章请点击此处 安卓TV开发(四)实现主 ...

  10. android入门程序源代码,安卓程序开发入门

    您可能感兴趣的话题: 安卓程序开发入门 核心提示:本教程为大家介绍采用Eclipse软件来编写安卓Hello,World程序. 创建一个新项目是很简单的,只要你安装了Eclipse插件,并且你的Ecl ...

最新文章

  1. python类的成员函数_python特殊成员函数
  2. 微信小程序和微信小程序之间的跳转和传参示例代码附讲解
  3. [转载]C# ListT的并集、交集、差集
  4. numpy 或者是 pandas 矩阵循环
  5. 机器学习框架ML.NET学习笔记【1】基本概念与系列文章目录
  6. Software License Manager
  7. rabbitmq-通配符模式
  8. 组织在召唤:如何免费获取一个js.org的二级域名
  9. 每日一题(5) —— 逗号表达式
  10. 前端模式 VD, 脏检查 MVVM ,数据收集 MVVM 所使用的场合
  11. 判断radio单选框是否选中
  12. Maven学习总结(24)——Maven版本管理详解
  13. Ajax:前台利器—Ajax
  14. ASCII 码表对照 2
  15. 2022年最新《谷粒学院开发教程》:1 - 构建工程篇
  16. Redis入门小案例
  17. NIO网络编程中重复触发读(写)事件
  18. 如何使IE地址栏里显示自己的小图片?
  19. 将谷歌网盘的文件搬运到百度网盘
  20. torch.mul、matmul、mm、bmm的区别

热门文章

  1. Total Commander的SFTP插件安装
  2. ps里怎么给透明背景填充颜色
  3. 5g理论速度_5g速度有多快(5g网络速度到底有多快)
  4. C语言基础知识(学习笔记)
  5. openwrt设置DNS
  6. 成都软考-技术技能提升补贴领取指南
  7. 弱水三千,只取一瓢饮 的意思
  8. char在计算机中是什么作用,C语言中char的用法
  9. Python 制作动态图
  10. 钉钉微应用H5的调试方法