編寫: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應用前, 必須做以下事情:
更新SDK tools到版本24.0.0或更高 更新的SDK工具能確保編譯和測試TV應用
更新SDK為Android 5.0 (API 21)或更高 更新的平臺版本為TV應用提供更新的API
創建或更新應用工程 為了支持TV新API, 我們必須創建一個新工程或者修改原工程的目標平臺為Android 5.0 (API版本21)或者更高。
一個應用想要運行在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。
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。
Android SDK包含用於TV應用的支持庫。這些庫為TV設備提供API和用戶界面控件。這些庫位於<sdk>/extras/android/support/
目錄。以下是這些庫的列表和它們的作用介紹:
Note:TV應用中可以不用這些庫。但是,我們強烈推薦使用它們,特別是為應用提供媒體目錄瀏覽界面時。
如果我們決定用v17 leanback library
,我們應該注意它依賴於v4 support library。這意味著要用leanback支持庫必須包含以下所有的支持庫:
v17 leanback library
包含資源文件,需要你在應用中採取特定的步驟去包含它。插入帶資源文件的支持庫的說明,查看Support Library Setup。
在完成上面的步驟之後,到了給大屏幕創建應用的時候了!檢查一下這些額外的專題可以幫助我們創建TV應用:
運行應用是在開發過程中的一個重要的部分。在安卓SDK中的AVD管理器提供了創建虛擬TV設備的功能,可以讓應用在虛擬設備中運行和測試。
創建一個虛擬TV設備
Note:獲得TV模擬器設備的最佳性能,打開Use Host GPU option,支持虛擬設備加速。更多模擬器硬件加速信息,參考Using the Emulator。
在虛擬設備中測試應用
更多模擬器信息:Using the Emulator。 用Android Studio部署應用到模擬器,查看Debugging with Android Studio。用帶ADT插件的Eclipse部署應用到模擬器,查看Building and Running from Eclipse with ADT 。