Android TV 开发 - 大屏幕来了,准备好!
已发表: 2022-03-11谷歌希望将 Android 应用到从手机和手表到汽车和智能电视机的所有产品中。 首先,为了充分披露,我不得不说我对智能电视平台有些偏见,所以让我们把它排除在外。 我认为市场上大多数(如果不是所有)智能电视平台都非常糟糕,但这只是我。 谷歌认为它可以做得更好,我倾向于相信它真的可以做得更好,或者至少我希望它可以做得更好,无论是作为消费者还是技术爱好者。
那么什么是安卓电视? 许多人将其与 2010 年发布的已停业平台 Google TV 混淆。它由 Google、Sony、Intel 和 Logitech 开发,但从未受到关注。 它在 2014 年年中被 Android TV 正式取代,这个新平台对于消费者和开发者来说都更加令人兴奋。
与 Google TV 不同,Android TV 更接近标准 Android。 它运行 Android 5.0(至少在初始发布版本中),可以在新电视以及独立设备上使用。 这是个好消息,因为 Android TV 最终会出现在廉价的 Android 电视盒和电视棒上,为数百万台旧电视带来相同的用户体验。 事实上,第一款搭载 Android TV 的设备根本就不是电视,而是 Google 的 Nexus Player。 这也解决了过去对各种智能电视平台的最大抱怨之一:缺乏一致性。 Android TV 应该为所有兼容设备带来几乎相同的用户体验。
革命不会被电视转播,它将被流式传输
就新功能而言,Android TV 还引入了对 Google Cast 的支持。 您可能熟悉 Chromecast 棒上的 Google Cast。 该技术已经得到数百个应用程序和服务的支持,而且还有更多应用程序和服务正在开发中。 Google Cast 允许 Android TV 设备接收来自一系列设备的流媒体内容。 使用 Google Cast API 实现起来很简单,您可以在 Google Cast 开发网站上找到所需的所有信息。
这是否意味着谷歌想把有线电视公司变成“哑管道”,只使用他们的带宽而不是内容? 不是真的,但一切皆有可能,尤其是随着智能电视平台的激增。
然而,流媒体并不是谷歌唯一的王牌。
Android TV 还为通信、游戏、家庭自动化等创造了新的机会。 Android TV 可以成为运行 Android 或其他平台的各种连接设备的中心。 您可以使用它来查看谁在门口,调节您的空调或连接的恒温器,甚至可以在观看一些 80 年代动作经典时将您的 RGB LED 灯泡与您的电视同步。
诚然,其中一些东西可能听起来很花哨,但 Android TV 不适合花哨; 它不会是像 Android Wear 或 Android Auto 这样的小众平台。 不久前,智能电视和智能手机还只有发烧友才买,但功能手机和传统电视现在都已经不复存在了。 Android TV 最终将出现在数百万家庭的电视上; 毫无疑问。
这对 Android 开发者来说是个好消息,因为用户群肯定会快速增长,从而降低了为 Android TV 应用开发开发新平台的风险。
Android TV – 引擎盖下是什么?
就硬件而言,我们将看到 Android 标准 FHD 屏幕 (1080p) 和 UHD (3840x2160)。 一些制造商也很有可能在未来某个时候将 Android TV 带入曲面 21:9 单元,但目前重点将放在 16:9 面板上。 UI 设计师需要牢记这一点。
由于它基于 Android 5.0(API 级别 21)并使用 ART,因此大多数 Android TV 硬件将配备 64 位处理器。 Nexus Player 基于 Intel Atom 处理器,许多即将推出的 Android TV 将采用联发科的 MT5595 处理器,而我在之前的文章中已经介绍过的 Nvidia 的 Shield 控制台使用 Tegra X1 处理器。 英特尔和英伟达的片上系统 (SoC) 产品基于 64 位 CPU 内核,而联发科采用 32 位 Cortex-A17 和 Cortex-A7 内核。
所有 Android TV 硬件都必须支持 HEVC 和 VP9 解码,而且这些芯片中的大多数都可能能够同时处理多个非 UHD 流。 以每秒 60 帧的速度提供 UHD 内容也应该不是问题。 还配备了快速的双频无线,为 UHD 流提供了足够的带宽。
Android TV 硬件平台将依赖大量中间件,并符合多种广播标准,以覆盖每个地区和市场。
硬件没有什么异国情调,开发人员不必担心太多。 许多 Android 5.0 DNA 确保了软件前端的平稳过渡,但有些事情需要牢记。
Android 走向大屏幕
这一切对开发者意味着什么? Android TV 开发听起来很简单,但快速浏览一下规范并不能描绘出全貌。 虽然许多开发人员和设计师应该有宾至如归的感觉,但他们也需要确保用户有宾至如归的感觉——毕竟,Android TV 是为客厅设计的。
让我们从好消息开始。 大多数 Android TV 设备将仅使用两种分辨率的 16:9 面板,因此很多东西都将标准化。 这将有助于提高一致性,并使测试更容易一些。
- 以 16:9 的一种纵横比工作(尽管未来可能会出现 21:9 的设备)。
- 为 FHD 和 UHD 两种分辨率设计,只有密度会根据屏幕尺寸而变化。
- 使用大量标准化的 UI 元素。
- 无需考虑触摸输入。
- 没有很多传感器需要处理。
- 电源效率无关紧要。
然而,Android TV 应用程序开发也带来了许多需要解决的新挑战。 由于电视本身没有触控输入(虽然可以使用平板电脑和手机进行输入),所以我们将不得不处理其他输入方式,例如遥控器、第三方鼠标单元、键盘、游戏控制器等. 还有很多遗留的 Android 东西需要去(例如,没有纵向模式)。 像素密度变化要大得多,缺少触摸输入可能会给某些开发人员带来问题,等等。
以下是一些挑战:
- 一次支持多个控制器。
- 支持不同类型的控制器,即标准遥控器和游戏控制器。
- 船上的传感器很少。
- 在某些设备上,过扫描可能是一个问题。
- 即使在相同的分辨率下,像素密度也大不相同(电视的尺寸比平板电脑和手机大得多)。
- 删除不必要的元素。
让我们仔细看看其中的一些问题。 由于 Android TV 将用作媒体中心,因此人们很可能希望在其上使用多个控制器。 有些人可能想要一个蓝牙键盘,而另一些人可能需要两个游戏控制器来进行一些多人游戏。 好消息是,您可能不需要自定义代码来实现对额外控制器输入的支持,因为标准 Android 游戏控制器输入可用于 UI 和游戏等应用程序。 但是,您可能需要处理多个输入设备,并且如果您需要添加对更多奇特控制器的支持,则可能需要进行一些调整。
大多数 Android 电视都会附带有限的传感器包。 为什么你需要在电视机上安装 GPS? 这就是为什么有必要禁用对电视设备上不可用的硬件功能的支持。 有很多关于如何整理所有内容的详细信息; 基本上,只需将不支持的传感器标记为错误,就是这样。
您还需要查看 Android 应用清单并检查它是否会因为缺少功能而将 Android TV 设备排除在外。
例如,标准的ACCESS_FINE_LOCATION
权限使用 GPS。 由于板载没有 GPS,因此您的应用清单应包括以下内容:
<uses-feature android:name="android.hardware.gps" android:required="false"/>
因此,您需要将ACCESS_FINE_LOCATION
更改为ACCESS_COARSE_LOCATION
。 同样的原则也适用于平台的其他方面,详情可在 Google 上找到。 您可能想要查看的另一个资源是 Nvidia 的 Android TV 开发人员指南。

如果您正在考虑重用其他 Android 项目中的内容,请记住这一点,否则您可能最终会得到一个尝试在电视上以纵向模式打开菜单的应用程序,这让我想到了下一点:
Android TV 10 英尺用户界面
尽管 Android TV 基本上是 Android 5.0,但用户界面与我们所知的普通 Android 几乎没有关系。 智能电视平台采用“10 英尺”方法,这基本上意味着用户体验针对距离屏幕 10 英尺进行了优化,大约是智能手机或平板电脑的十倍。
“10 英尺”概念早于智能电视平台。 它还用于屏幕显示 (OSD) 设计、游戏控制台仪表板设计,通常用于主流 5.1 环绕声系统。 那么它对用户体验和 UI 设计意味着什么呢?
嗯,设计师需要确保在一系列不同的面板上一切看起来都不错,从廉价的 37 英寸 1080p 电视到 65 英寸或 75 英寸的超高清怪物。 无论屏幕尺寸如何,UI 都必须在 FHD 和 UHD 中正常工作。 虽然我们只处理几种不同的分辨率,但像素密度(每英寸像素或 ppi)变化很大。
这里有一些例子:
- 42 英寸超高清面板 - 105ppi
- 42 英寸 FHD 面板 – 52ppi
- 50 英寸超高清面板 – 88ppi
- 50 英寸 FHD 面板 – 44ppi
- 55 英寸超高清面板 – 80ppi
- 65 英寸超高清面板 – 67ppi
- 32 英寸 FHD 面板 – 69ppi
我们不太可能在面板尺寸在 30-40 英寸范围内的 Android 电视上看到 UHD 面板,但我们应该会看到很多 FHD 设备在这一领域工作。 许多消费者只会出去购买新的 Android 电视盒,而不是更换现有的 1080p 电视机。 尽管许多电视制造商将开始在 40 英寸以上的机型上使用 4K 面板,但开发人员仍需要考虑传统支持。
这也是为什么我们需要记住过扫描可能是一个问题的原因。 许多改装了 Android 电视机顶盒的电视将失去一些朝向边框的屏幕空间。 任何熟悉视频的人都已经对安全帧(动作安全和标题安全)有所了解; 这是对标清 CRT 电视机时代的回归,但保持安全并避免将任何重要的 UI 元素放在边缘附近仍然是一个好主意。 尽量保持至少 5% 的区域没有任何重要内容,并为真正重要的 UI 元素使用更安全的边距; 10% 应该可以解决问题,但如果你想完全安全,你可以选择更多。
请记住,平板电脑或智能手机上不存在此特定问题。 幸运的是,这并不意味着 Google 没有考虑到这一点,因此 Android TV(以及其他版本的 Android 4.2.x 之后的版本)中内置了过扫描支持。 如果您正在考虑使用 OpenGL,您还需要解决这个问题。
Overscan 在真正的 Android TV 上不太可能成为问题,但在售后市场的 Android TV 解决方案中可能是一个大问题。 不是每个人都想每隔几年就升级他们的电视,很多人会得到一个 50 美元的带有 Android TV 的 HDMI 加密狗。 这就是为什么在您的 Android TV 应用程序中包含过扫描配置选项是个好主意。
另一个好主意是查看 Google 涵盖多屏幕支持的最佳实践。 这很简单但很重要; 您可能需要在应用清单中包含额外的“兼容屏幕”。
改善 Android TV 用户体验
用户体验一直是智能电视平台的问题。 Android TV 是 Google TV 做得对的,它应该改进用户体验,但不是开箱即用; 开发人员将需要做很多繁重的工作。
好消息是电视并不需要大量的用户输入和参与。 任何沙发土豆都会证明这一点! 电视制造商已经花费了数年时间来完善他们的智能电视界面,并通过更快、更时尚的 UI 和新硬件(例如新的传感器组合遥控器)来改善用户体验。 即使没有 Android TV,事情也进展顺利,但谷歌的新平台开辟了更多机会。
我已经说过我有点怀疑智能电视,但即使是我也不得不承认在过去几年中取得了很多进展。 然而,Android TV 不仅仅是改善人们消费电视内容的方式,更重要的是改变他们的消费方式。
如果你是那种喜欢在一次狂欢中观看大量体育和政治的用户(比如我退休和无聊的爸爸),那么用户体验是事后的想法。 像我这样的人也是如此,他们让电视在后台开着,听新闻或音乐,就像他们使用古老的电子管收音机一样。 然而,许多人消费视频内容的方式在过去 10 到 15 年间发生了巨大变化,首先是数字视频录像机,现在是流媒体。 今天的青少年在联网设备的陪伴下成长,他们对电视的期望比千禧一代更高。
迄今为止,任何智能电视平台的最终目标都被证明是难以捉摸的,它的最终目标是创造一种新的用户体验,将传统电视与点播视频和其他类型的内容尽可能无缝地结合起来。 就个人而言,我认为到目前为止没有人做得对。 谷歌可以,但还有待观察。 很多将取决于第三方开发人员。 他们必须遵循一些指导方针,才能在所有类型的 Android TV 硬件上提供良好的用户体验,从 50 美元的 HDMI 加密狗到 5000 美元的高端电视机。
由于我不是当前智能电视平台的粉丝,至少可以说,列出创建完美用户体验需要做的事情可能是冒昧的。 尽管如此,UI 和 UX 专家倾向于在以下几点上达成一致:
- 智能电视仍然只是电视——它们主要用于消费视频内容,而不是做我们已经在手机和平板电脑上做的一百万种不同的事情。
- 输入法必须改进——遥控器已经发展,但对于复杂的 UI,它们仍然不够好。 使用智能手机和平板电脑作为替代输入法仍然被认为是令人讨厌的,需要更加直接。
- 手势控制——它可以在某些情况下实现,但由于我们处理的是被动的用户体验,它不会有太大变化。
- 多用户——电视在大多数家庭中不是个人设备,所以忘记登录,它只会惹恼用户。
- 如果它没有坏,就不要修理它——传统的广播和电视由于简单和方便,仍然提供非常愉快的用户体验,因此无需重新发明轮子。
- 保持一切简单——尽量减少用户交互,尽可能少地点击。
- 寻求一个干净、最小的用户界面——仅仅因为你有很多不动产可以玩,你不必使用所有这些。
最终,Android TV 开发者只能做这么多; Google 和 Android TV 合作伙伴仍然需要创造出色的用户体验。 第三方开发人员将简单地在它的基础上进行构建,扩展功能,同时确保跨多个设备的一致体验。 如果底层平台出现初期问题或不一致,开发人员必须双手反绑在背后施展魔法。