开发者控制台

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

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

由于亚马逊Fire TV和Android TV都使用Android系统,因此同一Android应用可以同时在亚马逊应用商店和Google Play Store推出。若亚马逊和Google应用商店均有应用,则更容易发现,增大下载量。

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

针对这些差异编程时,请注意,可标识亚马逊Fire TV设备,调整代码,以适应不同设备和特性。

亚马逊Fire TV和Android TV有何不同?

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

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

重要的是,Android TV和亚马逊Fire TV都基于Android,因此应用所采用技术的相似性远大于差异。

以下介绍规划Fire TV时,代码中需考虑的差异。

Google服务

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

LeanBack支持库

亚马逊Fire TV仅支持部分Android Leanback支持库。例如,Fire TV使用Leanback的电视特定UI组件,Leanback小组件会发挥作用,而Fire TV会接受为LEANBACK_LAUNCHER标记的意图,但不支持Leanback的SearchFragment(在下一节中介绍)。

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

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

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

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

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

音频焦点

若启动应用之前,开始从音乐应用播放音乐,亚马逊Fire TV将继续在应用上播放音乐。“播放/暂停”按钮将控制音乐,而不是应用中的视频。

要接收音频焦点,应用必须在清单中注册MediaButtonReceiver(仅提供英文版)。MediaButtonReceiver将在应用启动时将音频焦点转移到应用的媒体服务。更多详细信息和代码示例,请参阅音频焦点

快进、倒回和菜单按钮

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

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

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

应用内购买

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

分析

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

Firebase

如果您在应用中使用Firebase SDK并希望继续使用Firebase,则可能需要实施一些替代方案。有些Firebase SDK依赖于Google Play服务,而这些服务在亚马逊设备上不可用。

如果您使用的是Firebase SDK,请先确定Firebase SDK是否需要Google Play服务。如果您使用的服务或功能不需要Google Play服务,则可以在亚马逊设备上继续使用该服务或功能。但是,如果相应的Firebase SDK需要Google Play服务,则可以选择使用替代产品,也可在亚马逊设备上禁用该Firebase功能。

有关如何确定是否支持所用Firebase SDK的更多详细信息,以及有关同等方案和替代方案的信息,请参阅“将现有Android应用移植到Fire OS”中的Firebase和替代方案

SDK级别

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

推荐

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

模拟器

在测试亚马逊Fire TV应用代码时,可采用实际Fire TV设备(机顶盒或电视棒),而非虚拟模拟器。有关更多详细信息,请参阅通过ADB连接到Fire TV

通知API

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

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

无障碍功能

亚马逊Fire TV提供VoiceView,让视障人士能够访问您的应用。通过本节,可了解有关VoiceView和无障碍功能详细情况:

亚马逊应用商店

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

测试应用

可通过将Android应用侧载到亚马逊Fire TV设备上,从而测试应用与亚马逊的兼容性。请参阅通过ADB连接到Fire TV

通过ADB连接到Fire TV设备并使用Android Studio运行您的应用时,会加载并运行一个成功的应用。如果关闭侧载的应用,则可以通过转到Settings(设置)> Applications(应用)> Manage Installed Applications(管理已安装的应用)来找到它。


Last updated: 2023年5月31日