創建TV應用的第一步

編寫:awong1900 - 原文:http://developer.android.com/training/tv/start/start.html

TV應用使用與手機和平板同樣的架構。這種相似性意味著我們可以修改現有的應用到TV設備或者用以前安卓應用的經驗開發TV應用。

Important: 想把Android TV應用放在Google Play中應滿足一些特定要求。更多信息, 參考TV App Quality中的要求列表。

本課程介紹如何準備TV應用開發環境,和使應用能夠運行在TV設備上的最低要求。

查明支持的媒體格式

查看以下文檔信息,包括代碼,協議和Android TV支持的格式。

查明支持的媒體格式

查看一下文檔關於代碼,協議和Android TV支持的格式。

創建TV項目

本節討論如何修改已有的應用或者新建一個應用使之能夠運行在電視設備上。在TV設備上運行的應用必須使用這些主要組件:

  • Activity for TV (必須) - 在您的application manifest中, 聲明一個可在TV設備上運行的activity。
  • TV Support Libraries (可選) - 這些支持庫Support Libraries 可以提供搭建TV用戶界面的控件。

前提條件

在創建TV應用前, 必須做以下事情:

聲明一個TV Activity

一個應用想要運行在TV設備中,必須在它的manifest中定義一個啟動activity,用intent filter包含CATEGORY_LEANBACK_LAUNCHER。這個filter表明你的應用是在TV上可用,並且為Google Play上發佈TV應用所必須。定義這個intent也意味著點擊主屏幕的應用圖標時,就是打開的這個activity。

接下來的代碼片段顯示如何在manifest中包含這個intent filter:

<application
  android:banner="@drawable/banner" >
  ...
  <activity
    android:name="com.example.android.MainActivity"
    android:label="@string/app_name" >

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>

  <activity
    android:name="com.example.android.TvActivity"
    android:label="@string/app_name"
    android:theme="@style/Theme.Leanback">

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>

  </activity>
</application>

例子中第二個activity manifest定義的activity是TV設備中的一個啟動入口。

Caution:如果在你的應用中不包含CATEGORY_LEANBACK_LAUNCHER intent filter,它不會出現在TV設備的Google Play商店中。並且,即使你把不包含此filter的應用用開發工具裝載到TV設備中,應用仍然不會出現在TV用戶界面上。

如果你正在為TV設備修改現有的應用,就不應該與手機和平板用同樣的activity佈局。TV的用戶界面(或者現有應用的TV部分)應該提供一個更簡單的界面,更容易坐在沙發上用遙控器操作。TV應用設計指南,參考TV Design指導。查看TV界面佈局的最低要求,參考:Building TV Layouts

聲明Leanback支持

Android TV需要你的應用使用Leanback用戶界面。如果你正在開發一個運行在移動設備(手機,可穿戴,平板等等)也包括TV的應用,設置required屬性為false。因為如果設置為true,你的應用將僅能運行在用Leanback UI的設備上。

<manifest>
    <uses-feature android:name="android.software.leanback"
        android:required="false" />
    ...
</manifest>

聲明不需要觸屏

運行在TV設備上的應用不依靠觸屏去輸入。為了清楚表明這一點,TV應用的manifest必須聲明android.hardware.touchscreen為不需要。這個設置表明應用能夠工作在TV設備上,並且也是Google Play認定你的應用為TV應用的要求。接下來的示例代碼展示這個manifest聲明:

<manifest>
    <uses-feature android:name="android.hardware.touchscreen"
              android:required="false" />
    ...
</manifest>

Caution:必須在manifest中聲明觸屏是不需要的,否則應用不會出現在TV設備的Google Play商店中。

提供一個主屏幕橫幅

如果應用包含一個Leanback的intent filter,它必須提供每個語言的主屏幕橫幅。橫幅是出現在應用和遊戲欄的主屏的啟動點。在manifest中這樣描述橫幅:

<application
    ...
    android:banner="@drawable/banner" >

    ...
</application>

application中添加android:banner屬性為所有的應用activity提供默認的橫幅,或者在特定activity的activity中添加橫幅。

在UI模式和TV設計指導中查看Banners

添加TV支持庫

Android SDK包含用於TV應用的支持庫。這些庫為TV設備提供API和用戶界面控件。這些庫位於<sdk>/extras/android/support/目錄。以下是這些庫的列表和它們的作用介紹:

  • v17 leanback library - 提供TV應用的用戶界面控件,特別是用於媒體播放應用的控件。
  • v7 recyclerview library - 提供了內存高效方式的長列表的管理顯示類。有一些v17 leanback庫的類依賴於本庫的類。
  • v7 cardview library - 提供顯示信息卡的用戶界面控件,如媒體圖片和描述。

Note:TV應用中可以不用這些庫。但是,我們強烈推薦使用它們,特別是為應用提供媒體目錄瀏覽界面時。

如果我們決定用v17 leanback library,我們應該注意它依賴於v4 support library。這意味著要用leanback支持庫必須包含以下所有的支持庫:

  • v4 support library
  • v7 recyclerview support library
  • v17 leanback support library

v17 leanback library包含資源文件,需要你在應用中採取特定的步驟去包含它。插入帶資源文件的支持庫的說明,查看Support Library Setup

創建TV應用

在完成上面的步驟之後,到了給大屏幕創建應用的時候了!檢查一下這些額外的專題可以幫助我們創建TV應用:

  • 創建TV播放應用 - TV就是用來娛樂的,因此安卓提供了一套用戶界面工具和控件,用來創建視頻和音樂的TV應用,並且讓用戶瀏覽想看到的內容。
  • 幫助用戶找到TV內容 - 因為所有的內容選擇都用手指操作遙控器,所以幫助用戶找到想要的內容幾乎和提供內容同樣重要。這個主題討論如何在TV設備中處理內容。
  • TV遊戲 - TV設備是非常好的遊戲平臺。參考這個主題去創造更好的TV遊戲體驗。

運行TV應用

運行應用是在開發過程中的一個重要的部分。在安卓SDK中的AVD管理器提供了創建虛擬TV設備的功能,可以讓應用在虛擬設備中運行和測試。

創建一個虛擬TV設備

  1. 打開AVD管理器。更多信息,參考AVD管理器幫助。
  2. 在AVD管理器窗口,點擊Device Definitions標籤。
  3. 選擇一個Android TV設備描述,並且點擊Create AVD
  4. 選擇模擬器選項並且點擊OK創建AVD。

Note:獲得TV模擬器設備的最佳性能,打開Use Host GPU option,支持虛擬設備加速。更多模擬器硬件加速信息,參考Using the Emulator

在虛擬設備中測試應用

  1. 在開發環境中編譯TV應用。
  2. 從開發環境中運行應用並選擇目標為TV虛擬設備。

更多模擬器信息:Using the Emulator。 用Android Studio部署應用到模擬器,查看Debugging with Android Studio。用帶ADT插件的Eclipse部署應用到模擬器,查看Building and Running from Eclipse with ADT


下一節: 處理TV硬件 >


书籍推荐