Fire TV 开发与 Android TV 开发有何不同


Fire TV 开发与 Android TV 开发有何不同

由于 Amazon Fire TV 和 Android TV 都使用安卓系统,因此您可以将同一个安卓应用推送到亚马逊应用商店和 Google Play Store。将您的应用同时在亚马逊商店和 Google 商店提供可以显著提高应用的可见度和下载量。

但是,您需要在代码中考虑与 Fire TV 之间的一些差异。其中一些差异是由于硬件或服务中的独特元素造成的。在某些情况下,一个服务具有另一个服务没有的功能,或者它们使用不同但等效的服务。

为这些差异编码时,请注意,您可以标识 Amazon Fire TV 设备,并相应地调整代码以针对不同的设备和行为。

Amazon Fire TV 和 Android TV 有何不同?

首先,让我们澄清 Android TV 和 Amazon Fire TV 的含义:

  • Android TV 是指已经针对电视优化的安卓操作系统(从 Lollipop 开始,一直延续到 Nougat 及更高版本)。Android Lollipop 和 Leanback 支持库提供了针对安卓版电视平台优化的功能。电视设备本身可以运行 Android TV 作为其原生操作系统,也可以通过机顶盒运行 Android。您可以在维基百科上了解更多关于 Android TV 的信息。
  • Amazon Fire TV 是指在电视机上运行 Fire 操作系统 (OS) 的 Fire TV 机顶盒或电视棒。Fire OS 有两个版本: Fire OS 5 和 6。Fire OS 5 是 Android 5.1(Lollipop,API 级别 22)的分叉,而 Fire OS 6 基于 Android 7.1(Nougat,API 级别 25)。Fire OS 利用相同的安卓操作系统,但也适用于亚马逊硬件和服务。大多数 Fire 平板电脑也运行 Fire OS 5,但没有利用通常用于电视平台上的“10 英尺媒体体验”的功能。(您可以了解有关 Fire OS 的更多信息或参阅 Fire TV 设备规格。)

重要的一点是,Android TV 和 Amazon Fire TV 都基于安卓,因此您为应用实施的技术具有的相似性远远超过不同之处。

以下部分列出了规划 Fire TV 时需要在代码中考虑的差异。

Google 服务

任何依赖谷歌特定服务(例如谷歌定位服务)的 API 在 Amazon Fire TV 上都不可用。虽然有 Amazon Maps API亚马逊移动广告 API,但 Fire TV 尚不支持这些 API。

LeanBack 支持库

Amazon Fire TV 支持部分但不是全部 Android Leanback 支持库。例如,Fire TV 使用 Leanback 中特定于电视的 UI 组件,Leanback 小部件将起作用,而 Fire TV 将遵守为 Leanback 标记的意图。但不支持 Leanback 的 SearchFragment(在下一节中描述)。

对于语音搜索,Android TV 使用依赖于 Leanback API 的应用控件(例如,使用 SearchFragment 进行语音识别)。但是,Amazon Fire TV 上的语音搜索不使用 Leanback 的 SearchFragment。在 Fire TV 上,语音搜索使用亚马逊特定的系统控件

无论用户在 Fire TV 上的哪个位置(无论是在启动器上还是应用中),当用户按下支持语音的遥控器上的麦克风按钮并说出他们想要的电视节目或 Alexa 操作时,此操作都会使用 Alexa 云服务来启动全局搜索,而不是使用 Leanback 库中的语音识别 API。

通过语音进行的媒体请求始终返回 Amazon Catalog 中的内容。有关更多详细信息,请参阅在 Fire TV 中实施搜索

在 Android TV 上,要将您的内容集成到全局搜索中,您可以使用搜索结果 ContentProvider 通过您的应用在本地进行。

在 Amazon Fire TV 上,要使您的内容出现在全球搜索结果中,您必须将您的媒体内容与 Amazon Catalog 集成。提交到目录是通过基于云的模型完成(而不是在应用中本地完成)。

音频焦点

如果用户在启动应用之前开始从音乐应用播放音乐,Amazon Fire TV 将继续在您的应用之上播放音乐。播放/暂停按钮将控制音乐,而不是应用中的视频。

要接收音频焦点,您的应用必须在清单中注册一个 MediaButtonReceiverMediaButtonReceiver 将在您的应用启动时将音频焦点转移到您的应用的媒体服务。有关更多详细信息和代码示例,请参阅音频焦点

快进、倒回和菜单按钮

Android TV 和 Amazon Fire TV 都有 4 向方向键 (dpad)、dpad_center/选择、返回和播放/暂停按钮。但是,Fire TV 还提供可选择使用的倒回、快进和菜单按钮。

Fire TV 上的“菜单”按钮调用安卓上下文菜单,该菜单显示为屏幕中心的菜单项列表。您可以覆盖菜单按钮以提供您自己的自定义菜单用户界面,或用于任何其他目的。

如果您只有一个菜单项,请考虑使用“菜单”按钮作为一个简单的切换,例如,打开或关闭隐藏式字幕。如果执行此操作,请考虑提供屏幕上的提示以向用户公开此功能。

应用内购买

Android TV 通常使用 Google Play Billing 进行应用内购买。对于 Amazon Fire TV 上的应用内购买,您可以使用亚马逊的应用内购买 (IAP) API。有关更多信息,您可以查看二者的详细比较

分析

Android TV 使用 Firebase 进行分析。在 Amazon Fire TV 上,您可以使用亚马逊移动分析或其他分析包(Google 分析、Flurry 分析、Crashlytics 等)。如果您使用 Fire App Builder 构建应用,其中许多分析包都可以配置为模块。

SDK 级别

Android TV 通常运行安卓系统的最新版本(Nougat 或 API 级别 25)。相比之下,Amazon Fire TV 设备可以运行 Fire OS 5(基于 Lollipop,API 级别 22)或 Fire OS 6(基于 Nougat,API 级别 25)。有关哪些设备使用哪些版本的 Fire OS 的信息,请参阅 Fire OS 版本Fire TV 设备规格

推荐

Android TV 和 Amazon Fire TV 都允许应用在主屏幕上进行推荐。Fire TV 还提供许多特定于 Fire TV 的增强推荐功能

模拟器

在测试您的 Amazon Fire TV 应用代码时,您可以使用实际 Fire TV 设备(机顶盒或电视棒),而不是虚拟模拟器。有关更多详细信息,请参阅通过 adb 连接到 Fire TV

通知 API

您可以使用标准的安卓通知 API 为您的 Amazon Fire TV 应用创建通知。Fire TV 提供与 Android TV 相同的 toast 通知和持久性模型。不过,除了 toast 之外,Fire TV 还提供提醒通知,这种通知允许交互式按钮。

此外,在 Fire TV 上,旧通知不是放在通知抽屉中,而是存储在通知中心。在 Amazon Fire TV 的通知中了解更多信息。

辅助功能

Amazon Fire TV 提供 VoiceView,让视障人士能够访问您的应用。您可以在这里了解有关 VoiceView 和辅助功能的更多信息:

应用商店

Android TV 设备使用 Google Play Store。而 Amazon Fire TV 使用亚马逊应用商店。您指向 Google Play Store 的任何链接都需要链接到亚马逊应用商店。

测试应用

您可以通过将您的安卓应用旁加载到 Amazon Fire TV 设备上来测试应用与亚马逊的兼容性。请参阅通过 adb 连接到 Fire TV。您还可以使用应用测试服务来测试您的应用。

当您通过 adb 连接到 Fire TV 设备并使用 Android Studio 运行您的应用时,一个成功的应用将会加载并运行。如果您关闭旁加载的应用,则可以通过转到设置 > 应用 > 管理已安装的应用来找到它。