TV應用程式使用相同的結構與手機和平闆電腦。這種相似性意味着你也可以修改現有的應用程式運作在TV裝置或建立新的應用程式基于你現在已經掌握的Android技術開發應用。
1、建立Android TV工程
本篇部落客要介紹如何準備您的開發環境,為開發電視應用程式,和最低要求的變化,使一個應用程式運作在電視裝置上。
首先,我們需要使用以下兩個重要的元件:
Activity for Tv(必須) - 在應用的manifest檔案中,我們需要聲明一個需運作在電視端的activity
Tv Support Libraries(可選) - 有幾個相關的支援包,提供了一些電視裝置相關的互動控件。
1.1開發環境
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CNycDNygDM5ADMycDM2EDMy8CXwIzNwYTMwIzLcNXZslmZsx2bD9CXlxWamRWYvxGc19CXt92Yu8GdjJjL3d3dvw1LcpDc0RHaiojIsJye.png)
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)
4,運作 TV APPs(Run TV Apps)
4.1 建立 TV 模拟器
1、啟動AVD管理,建立虛拟機.并點選Create Virtual Device
2、選擇Category Tv,選擇一個Android TV,然後點選“Next”
直至出現如下界面點選“Finish”完成模拟器建立,過程中如果SDK版本過低,會提示下載下傳。
模拟器中調試
如果你的TV APPs無錯誤,在模拟器中顯示如下。
通過鍵盤操作,現實中通過遙控操作。進入Apps界面顯示如下:
看到如上界面,表示你已經成功的建立了一個Android TV項目,可安裝到電視中試一試啦!
最後簡單說明一下如何在模拟器中操作
為了模拟電視遙控的操作,我們需要通過鍵盤來控制,鍵盤中上、下、左、右鍵,可以移動焦點,點選“Enter”鍵進入,點選“ESC”鍵退出。