Memulai aplikasi TV

Aplikasi TV menggunakan struktur yang sama dengan aplikasi ponsel dan tablet. Dengan demikian, Anda bisa mengubah aplikasi yang sudah ada agar berjalan di perangkat TV atau membuat aplikasi baru berdasarkan hal yang sudah Anda ketahui tentang membuat aplikasi untuk Android.

Penting: Aplikasi harus mengikuti persyaratan khusus agar memenuhi syarat sebagai aplikasi Android TV di Google Play. Untuk informasi selengkapnya, lihat persyaratan yang tercantum dalam Kualitas Aplikasi TV.

Tutorial ini menjelaskan cara menyiapkan lingkungan pengembangan Anda untuk membuat aplikasi TV, serta perubahan minimum yang diperlukan agar aplikasi bisa berjalan di perangkat TV.

Anda juga harus membaca Desain TV dan Merancang tata letak TV. Selain itu, coba sampel Library Dukungan Leanback Android TV.

Menentukan dukungan format media

Lihat dokumentasi berikut ini untuk informasi tentang codec, protokol, dan format yang didukung oleh Android TV.

Menyiapkan project TV

Bagian ini membahas cara mengubah aplikasi Android yang sudah ada agar dapat berjalan di perangkat TV, atau membuat aplikasi baru. Jika sudah memiliki aplikasi Android, menambahkan dukungan Android TV memungkinkan Anda mendesain antarmuka pengguna untuk TV sembari menggunakan kembali arsitektur aplikasi yang sudah ada.

Berikut adalah komponen utama yang harus digunakan untuk membuat aplikasi yang berjalan di perangkat TV:

  • Activity for TV (Diperlukan) - Dalam manifes aplikasi, deklarasikan aktivitas yang dimaksudkan untuk berjalan di perangkat TV.
  • TV Support Libraries (Opsional) - Ada beberapa library dukungan untuk perangkat TV yang menyediakan widget untuk membuat antarmuka pengguna.

Prasyarat

Sebelum mulai membuat aplikasi untuk TV, Anda harus:

Mendeklarasikan aktivitas TV

Aplikasi yang ditujukan agar berjalan di perangkat TV harus mendeklarasikan aktivitas peluncur untuk TV dalam manifesnya. Filter intent CATEGORY_LEANBACK_LAUNCHER digunakan untuk melakukan hal ini. Filter ini mengidentifikasi bahwa aplikasi Anda diaktifkan untuk TV, dan memungkinkan Google Play mengidentifikasinya sebagai aplikasi TV. Ketika seorang pengguna memilih aplikasi Anda di layar beranda TV mereka, intent ini akan mengidentifikasi aktivitas mana yang akan diluncurkan.

Cuplikan kode berikut ini menunjukkan cara menyertakan filter intent ini dalam manifes:

    <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>
    

Entri manifes aktivitas kedua dalam contoh ini menetapkan aktivitas tersebut sebagai aktivitas yang akan diluncurkan di perangkat TV.

Perhatian: Jika Anda tidak menyertakan filter intent CATEGORY_LEANBACK_LAUNCHER dalam aplikasi, aplikasi tidak akan terlihat oleh pengguna yang menjalankan Google Play di perangkat TV. Selain itu, jika aplikasi tidak memiliki filter ini saat Anda menggunakan developer tool untuk memuatnya ke perangkat TV, aplikasi tidak akan muncul dalam antarmuka pengguna TV.

Jika Anda mengubah aplikasi yang ada untuk digunakan di TV, aplikasi tidak boleh menggunakan tata letak aktivitas yang sama untuk TV seperti untuk ponsel dan tablet. Antarmuka pengguna aplikasi TV (atau bagian TV dalam aplikasi yang ada) harus menyediakan antarmuka yang lebih sederhana untuk navigasi mudah menggunakan remote kontrol dari sofa. Panduan mendesain aplikasi TV dapat dilihat di panduan Desain TV. Informasi selengkapnya tentang persyaratan implementasi minimum untuk tata letak antarmuka di TV dapat dilihat di Merancang tata letak untuk TV.

Mendeklarasikan dukungan Leanback

Deklarasikan bahwa aplikasi Anda menggunakan antarmuka pengguna Leanback yang diperlukan oleh Android TV. Jika Anda mengembangkan aplikasi yang berjalan di perangkat seluler (ponsel, perangkat wearable, tablet, dsb.) serta Android TV, setel nilai atribut required ke false. Jika nilai atribut required disetel ke true, aplikasi Anda hanya akan berjalan di perangkat yang menggunakan UI Leanback.

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

Tidak perlu mendeklarasikan layar sentuh

Aplikasi yang ditujukan agar berjalan di perangkat TV tidak mengandalkan layar sentuh untuk menerima input. Lebih jelasnya, manifes aplikasi TV Anda harus mendeklarasikan bahwa fitur android.hardware.touchscreen tidak diperlukan. Setelan ini mengidentifikasi bahwa aplikasi Anda bisa berfungsi di perangkat TV, dan diperlukan agar aplikasi Anda dikenali sebagai aplikasi TV di Google Play. Contoh kode berikut menunjukkan cara menyertakan deklarasi manifes ini:

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

Perhatian: Dalam manifes aplikasi, Anda harus mendeklarasikan bahwa layar sentuh tidak diperlukan, seperti yang ditunjukkan kode contoh tersebut; atau aplikasi Anda tidak akan muncul di Google Play di perangkat TV.

Jika menyertakan filter intent peluncur Leanback, aplikasi harus menyediakan gambar banner layar utama untuk setiap pelokalan. Banner adalah tempat peluncuran aplikasi yang muncul di layar utama dalam baris aplikasi dan game. Untuk menambahkan banner ke aplikasi, deskripsikan banner dalam manifes sebagai berikut:

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

        ...
    </application>
    

Gunakan atribut android:banner dengan tag <application> untuk menyediakan banner default bagi semua aktivitas aplikasi, atau dengan tag <activity> untuk menyediakan banner bagi aktivitas tertentu.

Banner harus berupa resource xhdpi dengan ukuran 320 x 180 px. Teks harus disertakan dalam gambar. Jika aplikasi disediakan dalam lebih dari satu bahasa, Anda harus menyediakan versi banner yang berbeda dengan teks untuk setiap bahasa yang didukung.

Mengubah warna peluncur

Saat aplikasi TV diluncurkan, sistem akan menampilkan animasi yang tampak seperti lingkaran penuh yang melebar. Untuk menyesuaikan warna animasi ini, setel atribut android:colorPrimary dari aplikasi atau aktivitas TV Anda dengan warna tertentu. Anda juga harus menyetel dua atribut tumpang tindih transisi tambahan ke true seperti yang ditunjukkan dalam cuplikan berikut dari file XML resource tema:

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

Untuk informasi selengkapnya tentang bekerja dengan tema dan gaya, lihat Gaya dan tema.

Menambahkan library dukungan TV

SDK Android menyertakan library dukungan untuk digunakan dengan aplikasi TV. Library ini menyediakan API dan widget antarmuka pengguna untuk perangkat TV. Library yang terletak dalam direktori <sdk>/extras/android/support/ ini adalah sebagai berikut:

  • v17 leanback library - Menyediakan widget antarmuka pengguna untuk aplikasi TV, terutama untuk aplikasi yang melakukan pemutaran media.
  • v7 recyclerview library - Menyediakan class untuk mengelola tampilan daftar panjang dengan penggunaan memori yang efisien. Beberapa class dalam v17 leanback library bergantung pada class dalam library ini.
  • v7 cardview library - Menyediakan widget antarmuka pengguna untuk menampilkan kartu informasi seperti gambar dan keterangan item media.

Catatan: Anda tidak harus menggunakan library dukungan ini untuk aplikasi TV. Namun, kami sangat merekomendasikan Anda untuk menggunakannya, terutama untuk aplikasi yang menyediakan antarmuka penjelajahan katalog media.

Jika memutuskan untuk menggunakan v17 leanback library bagi aplikasi, Anda harus memperhatikan bahwa library ini bergantung pada v4 support library. Dengan demikian, aplikasi yang menggunakan library dukungan leanback harus menyertakan library dukungan berikut ini:

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

v17 leanback library berisi resource yang memerlukan langkah-langkah spesifik untuk menyertakan library dalam project aplikasi. Untuk instruksi tentang mengimpor library dukungan dengan resource, lihat Penyiapan Library Dukungan.

Merancang aplikasi TV

Setelah menyelesaikan langkah-langkah yang dijelaskan di atas, sekarang saatnya merancang aplikasi untuk layar besar! Lihat topik tambahan ini untuk membantu Anda membuat aplikasi untuk TV:

  • Membuat aplikasi pemutaran TV - TV dibuat untuk menghibur, jadi, Android menyediakan rangkaian antarmuka pengguna dan widget untuk membuat aplikasi TV yang memutar video dan musik, serta memungkinkan pengguna menjelajahi konten yang mereka inginkan.
  • Membantu pengguna menemukan konten Anda di TV - Dengan semua pilihan konten yang tersedia di ujung jari pengguna, membantu mereka menemukan konten yang disukai kini hampir sama pentingnya dengan menyediakan konten tersebut. Pelatihan ini membahas cara memunculkan konten Anda di perangkat TV.
  • Membuat game TV - Perangkat TV merupakan platform yang sangat cocok untuk game. Lihat topik ini untuk informasi tentang membuat pengalaman game yang hebat bagi TV.
  • Membuat channel TV - Sajikan konten video Anda dalam gaya "siaran TV" linier dengan channel dan program yang bisa diakses pengguna melalui panduan program serta tombol naik/turun channel.

Menjalankan aplikasi TV

Menjalankan aplikasi merupakan bagian penting dari proses pengembangan. Anda bisa menjalankan aplikasi di perangkat TV yang dikonfigurasi untuk mendukung proses debug USB, atau menggunakan perangkat TV virtual.

Menjalankan di perangkat sungguhan

Persiapkan perangkat TV Anda sebagai berikut:

  1. Gunakan kabel USB untuk menghubungkan perangkat TV ke mesin pengembangan. Jika perlu, lihat dokumentasi yang disediakan oleh produsen perangkat.
  2. Di perangkat TV, navigasikan ke Settings.
  3. Di baris Device, pilih About.
  4. Scroll menurun ke Build dan pilih Build beberapa kali hingga muncul pesan "You are now a developer!"
  5. Kembali ke Settings. Di baris Preferences, pilih Developer options.
  6. Pilih Debugging > USB debugging lalu pilih On.
  7. Kembali ke layar utama TV.

Untuk menguji aplikasi di perangkat TV Anda:

  1. Di Android Studio, pilih project Anda, lalu klik Run dari toolbar.
  2. Di jendela Select Deployment Target, pilih perangkat TV Anda, lalu klik OK.

Menjalankan di perangkat virtual

AVD Manager di Android SDK menyediakan definisi perangkat yang memungkinkan Anda membuat perangkat TV virtual untuk menjalankan dan menguji aplikasi.

Untuk membuat perangkat TV virtual:

  1. Mulai AVD Manager. Untuk informasi selengkapnya, lihat bantuan AVD Manager.
  2. Dalam dialog AVD Manager, klik tab Device Definitions.
  3. Pilih salah satu definisi perangkat Android TV, lalu klik Create AVD.
  4. Pilih opsi emulator, kemudian klik OK untuk membuat AVD.

    Catatan: Untuk mendapatkan kinerja perangkat emulator TV yang optimal, gunakan emulator x86 dan aktifkan opsi Use Host GPU. Selain itu, gunakan akselerasi perangkat virtual ketika tersedia. Untuk informasi selengkapnya tentang akselerasi hardware emulator, lihat Mengonfigurasi Akselerasi Hardware.

Untuk menguji aplikasi Anda di perangkat TV virtual:

  1. Di Android Studio, pilih project Anda, lalu klik Run dari toolbar.
  2. Di jendela Select Deployment Target, pilih perangkat TV virtual Anda lalu klik OK.

Untuk informasi selengkapnya tentang menggunakan emulator, lihat Menggunakan emulator. Untuk informasi selengkapnya tentang menerapkan aplikasi dari Android Studio ke perangkat virtual, lihat Melakukan proses debug dengan Android Studio.