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 英尺電視概念

“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 合作夥伴仍然需要創造出色的用戶體驗。 第三方開發人員將簡單地在它的基礎上進行構建,擴展功能,同時確保跨多個設備的一致體驗。 如果底層平台出現初期問題或不一致,開發人員必須雙手反綁在背後施展魔法。