天天看點

Android筆記:淺析Android電視APP開發

TV應用程式使用相同的結構與手機和平闆電腦。這種相似性意味着你也可以修改現有的應用程式運作在TV裝置或建立新的應用程式基于你現在已經掌握的Android技術開發應用。

1、建立Android TV工程

本篇部落客要介紹如何準備您的開發環境,為開發電視應用程式,和最低要求的變化,使一個應用程式運作在電視裝置上。

首先,我們需要使用以下兩個重要的元件:

Activity for Tv(必須) - 在應用的manifest檔案中,我們需要聲明一個需運作在電視端的activity

Tv Support Libraries(可選) - 有幾個相關的支援包,提供了一些電視裝置相關的互動控件。

1.1開發環境

Android筆記:淺析Android電視APP開發

1.2聲明一個TV Activity(Set up a TV Project)

運作在電視裝置端的Activity需要聲明CATEGORY_LEANBACK_LAUNCHER 意圖過濾器聲明,這樣可以保證Google Play能夠認定我們的app為電視版,同時,當我們在電視上選擇我們的應用圖示時,就會進入到我們聲明CATEGORY_LEANBACK_LAUNCHER的Activity與Android手機一緻。

如下段代碼,TvActivity将會展示在電視端,而MainActivity則會顯示在手機或平闆端。

<intent-filter>

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



    <intent-filter>

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

  </activity>
</application>
           

注意:

如果我們的app中不包含CATEGORY_LEANBACK_LAUNCHER 意圖過濾的Activity,那麼電視端的Google Play store不會顯示我們的應用,同時,我們用開發工具在電視端或AVD中調試時,我們的應用圖示也不會出現在電視桌面上。

如果你正在修改一個現有的應用程式在電視上使用,你的應用程式不應該使用相同的Activity布局電視,它僅僅适用于手機和平闆電腦。

TV應用程式的使用者界面(或T V部分現有的應用程式)應該提供一個更簡單的接口,可以很容易地從沙發上導航使用和遠端控制。

1.3聲明Leanback支援

如果你的應用要同時運作在手機、平闆、以及電視裝置上,需要将required屬性設定為false,如果設定為true那麼應用隻能運作在使用Leanback UI的裝置上。

以下代碼示例展示了如何包含這個清單聲明:

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

1.4聲明不可觸屏(Declare touchscreen not required)

運作在TV上的應用程式都是不依賴觸摸屏輸入,也可以了解為不支援觸摸屏。為了明确這一點,我們需要聲明android.hardware.touchscreen。

以下代碼示例展示了如何包含這個清單聲明:

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

提示:

以上代碼也是必須要聲明的,以此來證明觸摸屏功能不是必需的。同時為了讓Google Play認定app是電視app,能讓應用在電視裝置上工作。

1.5提供一個主螢幕圖示(Provide a home screen banner)

這裡需要強調的是他的優先級大于 android:icon=”@mipmap/ic_launcher”

1.6修改加載圖顔色(Change the launcher color)

當我們加載一個app的時候,會顯示一個圓形圖示的加載動畫,我們可以自定義其顔色。

通過android:colorPrimary設定特定顔色,另外還要設定兩個額外的屬性為true,代碼如下:

<resources><style ...="" type="text/css"><item name="android:colorPrimary">@color/primary</item>
      <item name="android:windowAllowReturnTransitionOverlap">true</item>
      <item name="android:windowAllowEnterTransitionOverlap">true</item></style>
</resources>
           

2添加TV支援庫(Add TV Support Libraries)

Android SDK下包含了一些用于Tv應用的支援庫,這些支援庫包含了一些用于Tv應用的UI控件,這些庫位于/extras/android/support/ 目錄下。以下是對這些庫的說明:

v17 leanback library -提供了一些專門用于媒體播放控件。 v7 recyclerview library-提供了以記憶體效率更高的方式來管理清單展示的類。同時v17 leanback

library中的一些類也要依賴此庫。 v7 cardview library-包含了用來展示資訊卡片的控件。

注:你不需要使用這些支援庫在你的TV應用程式裡。但是,我們強烈建議你使用它們,特别是開發媒體相關的APP。

如果決定要使用v17 leanback library,應當注意,它是依賴v4 support library的,這意味着我們最終要包含如下庫:

v4 support library v7 recyclerview support library v17 leanback support library

3.建立TV APPs教程(Build TV Apps)

Android筆記:淺析Android電視APP開發

4,運作 TV APPs(Run TV Apps)

4.1 建立 TV 模拟器

1、啟動AVD管理,建立虛拟機.并點選Create Virtual Device

Android筆記:淺析Android電視APP開發

2、選擇Category Tv,選擇一個Android TV,然後點選“Next”

Android筆記:淺析Android電視APP開發

直至出現如下界面點選“Finish”完成模拟器建立,過程中如果SDK版本過低,會提示下載下傳。

Android筆記:淺析Android電視APP開發

模拟器中調試

如果你的TV APPs無錯誤,在模拟器中顯示如下。

Android筆記:淺析Android電視APP開發

通過鍵盤操作,現實中通過遙控操作。進入Apps界面顯示如下:

Android筆記:淺析Android電視APP開發

看到如上界面,表示你已經成功的建立了一個Android TV項目,可安裝到電視中試一試啦!

最後簡單說明一下如何在模拟器中操作

為了模拟電視遙控的操作,我們需要通過鍵盤來控制,鍵盤中上、下、左、右鍵,可以移動焦點,點選“Enter”鍵進入,點選“ESC”鍵退出。