TV uygulamalarını kullanmaya başlama

TV uygulamaları, telefon ve tabletlere yönelik uygulamalarla aynı yapıyı kullanır. Bu benzerlik sayesinde mevcut uygulamalarınızı TV cihazlarında da çalışacak şekilde değiştirebilir veya Android için uygulama geliştirme hakkında bildiklerinize dayanarak yeni uygulamalar oluşturabilirsiniz.

Önemli: Uygulamanızın Google Play'de Android TV uygulaması olarak kabul edilebilmesi için belirli şartları karşılaması gerekir. Daha fazla bilgi için TV uygulama kalitesi bölümünde listelenen şartlara bakın.

Bu kılavuzda, TV uygulamaları derlemek için geliştirme ortamınızı nasıl hazırlayacağınız ve bir uygulamanın TV cihazlarında çalışmasını sağlamak için gereken minimum değişiklikler açıklanmaktadır.

TV için uygulama tasarlama hakkında bilgi edinmek için TV için tasarım bölümüne bakın. Android TV GitHub deposundaki örnek uygulamalara da göz atın.

Medya biçimi desteğini belirleme

Android TV tarafından desteklenen codec'ler, protokoller ve biçimler hakkında bilgi için aşağıdaki belgelere bakın:

TV projesi oluşturma

Bu bölümde, mevcut bir Android uygulamasını TV cihazlarında çalışacak şekilde değiştirir veya yeni TV uygulaması oluşturuyorsanız TV projesinin nasıl oluşturulacağı açıklanmaktadır. Mevcut bir Android uygulamanız varsa Android TV desteği ekleyerek mevcut uygulama mimarinizi yeniden kullanırken TV için kullanıcı arayüzü tasarlayabilirsiniz.

TV etkinliği bildirme

TV cihazlarında çalışması amaçlanan bir uygulama, manifest dosyasında TV için başlatıcı etkinliğini beyan etmelidir. Bunun için CATEGORY_LEANBACK_LAUNCHER intent filtresi kullanır. Bu filtre, uygulamanızı TV için etkinleştirilmiş olarak tanımlar ve Google Play'in uygulamanızı TV uygulaması olarak tanımlamasına olanak tanır. Kullanıcı, TV ana ekranında uygulamanızı seçtiğinde bu amaç, hangi etkinliğin başlatılacağını belirler.

Aşağıdaki kod snippet'i, bu intent filtresini manifest dosyanıza nasıl ekleyeceğinizi göstermektedir:

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

Bu örnekteki ikinci etkinlik manifesti girişi, bir TV cihazında başlatılacak etkinlik olduğunu belirtir.

Dikkat: Uygulamanızda CATEGORY_LEANBACK_LAUNCHER intent filtresine yer vermezseniz bu filtre TV cihazlarında Google Play'i çalıştıran kullanıcılar tarafından görülemez. Ayrıca, geliştirici araçlarını TV cihazına yüklemek için kullandığınızda uygulamanızda bu filtre yoksa uygulama TV kullanıcı arayüzünde görünmez.

TV uygulamanızın kullanıcı arayüzü veya mevcut uygulamanızın TV bölümü, 3 metre mesafedeki uzaktan kumandayı kullanarak kolayca gezinmeniz için basit bir arayüz sağlamalıdır. Mevcut bir uygulamayı TV'de kullanmak üzere değiştiriyorsanız TV'de, telefonlar ve tabletlerde kullandığınız etkinlik düzenini kullanmayın. TV için uygulama tasarlamayla ilgili yönergeler için TV için tasarlama konusuna bakın. TV'deki arayüz düzenleri için minimum uygulama gereksinimleri hakkında daha fazla bilgi için TV düzenleri oluşturma bölümüne bakın.

TV cihazı desteği bildirme

android.software.leanback özelliğini beyan ederek uygulamanızın Android TV'ye özel olduğunu beyan edin.

Uygulamanız hem mobil cihazlarda hem de TV'de çalışıyorsa required özellik değerini false olarak ayarlayın. required özellik değerini true olarak ayarlarsanız Google Play, uygulamanızı yalnızca Android TV OS'de kullanıma sunar.

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

Dokunmatik ekran gerekli olmadığını bildir

TV cihazlarında çalıştırılması amaçlanan uygulamalar, giriş için dokunmatik ekranlara ihtiyaç duymaz. Bu durumu netleştirmek için TV uygulamanızın manifest dosyasında, android.hardware.touchscreen özelliğinin gerekli olmadığını beyan etmesi gerekir. Bu ayar, uygulamanızın TV cihazında çalışabileceğini tanımlar ve uygulamanızın Google Play'de TV uygulaması olarak kabul edilmesi için gereklidir. Aşağıdaki kod örneğinde, bu manifest beyanının nasıl dahil edileceği gösterilmektedir:

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

Dikkat: Bu örnek kodda gösterildiği gibi, uygulama manifestinizde dokunmatik ekranın gerekli olmadığını beyan etmeniz gerekir. Aksi takdirde, uygulamanız TV cihazlarındaki Google Play'de görünmez.

Ana ekran simgesi ve banner'ı sağlama

Android TV uygulamaları her yerelleştirme için hem ana ekran simgesi hem de banner görüntüsü sağlamalıdır. Android TV cihazına bağlı olarak simge veya banner, ana ekrandaki uygulamalar ve oyunlar satırlarında görünen uygulama başlatma noktası olarak kullanılır.

Bunları uygulamanıza eklemek için manifest dosyasındaki simgeyi ve banner'ı aşağıdaki gibi açıklayın:

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

Ana ekran simgesi

Android TV uygulamaları, tüm Android uygulamaları gibi bir ana ekran simgesi sağlamalıdır. Uygulamanız için iyi bir lansman noktası belirlemeyle ilgili en iyi uygulamalar ve ayrıntılı öğe şartları için Android TV uygulama simgesi ve banner yönergelerine göz atın.

Tüm uygulama etkinlikleri için varsayılan bir banner sağlamak, belirli bir etkinlik için banner sağlamak üzere <activity> etiketini veya <application> etiketiyle birlikte android:banner özelliğini kullanın.

Banner için 320 x 180 piksel boyutunda bir xhdpi kaynağı kullanın. Metin, resme dahil edilmelidir. Uygulamanız birden fazla dilde sunuluyorsa desteklenen her dil için metin içeren ayrı banner sürümleri sağlamanız gerekir.

Başlatıcı rengini değiştirme

Dikkat: Android 12 ve sonraki sürümlerde, SplashScreen platform API'si kullanılarak oluşturulan özel başlangıç ekranı animasyonları Android TV uygulamaları için desteklenmez.

Bir TV uygulaması başlatıldığında sistem, genişleyen, içi dolu bir daireye benzeyen bir animasyon görüntüler. Bu animasyonun rengini özelleştirmek için TV uygulamanızın veya etkinliğinizin android:colorPrimary özelliğini belirli bir renge ayarlayın. Ayrıca, bir tema kaynağı XML dosyasından aşağıdaki snippet'te gösterildiği gibi iki geçiş çakışması özelliğini true olarak ayarlayın:

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

Temalar ve stillerle çalışma hakkında daha fazla bilgi için Stiller ve Temalar konusuna bakın.

Android TV OS için uygulama geliştirme

AndroidX kitaplıklarının çoğu Android TV ile kullanılabilir. Yaşam döngüsüne duyarlı kullanıcı arayüzü verilerini yönetmek için ViewModel gibi Mimari Bileşenleri'ni, mobilde olduğu gibi yerel SQLite veritabanlarıyla entegrasyon sağlamak için de Room kullanın.

AndroidX kitaplıklarının çoğu Android TV'yi destekler. TV uygulamaları, mobil uygulamalarla aynı mimari bileşenlerini kullanabilir. Bileşenleri form faktörleri arasında bile paylaşabilirsiniz. Bu sayede yalnızca TV uygulamanızın sunum mantığında uzmanlaşmanız yeterlidir.

TV için ileti yazın

TV OS kullanıcı arayüzünüzü oluşturmak için Jetpack Compose'u kullanın. Compose, kullanıcı arayüzü geliştirmede modern Android'in temelini oluşturur. Temel Compose kitaplıklarının yanı sıra TV için Compose kitaplıkları da büyük ekran için özel olarak tasarlanmış özel bileşenler sağlar:

Android TV'de Jetpack Compose'u kullanma bölümünde TV için Compose'u kullanarak TV uygulaması oluşturmayı keşfedin.

Leanback kullanıcı arayüzü araç seti (önerilmez)

Leanback kullanıcı arayüzü araç seti, geçmişten bu yana yalnızca Android görünümlerini ve parçalarını kullanan TV cihazları için API'ler ve kullanıcı arayüzü widget'ları sağlıyordu:

Leanback kullanıcı arayüzü araç setini kullanma konusundaki Leanback kullanıcı arayüzü araç setini kullanarak nasıl TV uygulaması oluşturacağınızı keşfedin.

TV uygulamalarını çalıştırma

Uygulamanızı çalıştırmak, geliştirme sürecinin önemli bir parçasıdır. Uygulamanızı, USB üzerinden hata ayıklamayı destekleyecek şekilde yapılandırılmış TV cihazlarında veya sanal TV cihazları kullanacak şekilde çalıştırabilirsiniz.

Fiziksel bir cihazda çalıştırma

TV cihazınızı aşağıdaki şekilde kurun:

  1. TV cihazınızı geliştirme makinenize bağlamak için USB kablosu kullanın. Gerekirse cihaz üreticinizin sağladığı belgelere bakın.
  2. TV cihazınızda Ayarlar'a gidin.
  3. Cihaz satırında Hakkında'yı seçin.
  4. Derleme'ye ilerleyin ve "Artık bir geliştiricisiniz!" mesajını alana kadar birkaç kez Derleme'yi seçin.
  5. Ayarlar'a geri dönün Tercihler satırında Geliştirici seçenekleri'ni seçin.
  6. Hata ayıklama > USB üzerinden hata ayıklama'yı, ardından Açık'ı seçin.
  7. TV ana ekranına geri dönün.

Uygulamanızı TV cihazınızda test etmek için:

  1. Android Studio'da projenizi seçin ve araç çubuğundan Çalıştır tıklayın.
  2. Select Deployment Target (Dağıtım Hedefi Seçin) penceresinde TV cihazınızı seçin ve OK (Tamam) seçeneğini tıklayın.

Sanal cihazda çalıştırma

Android SDK'daki AVD Manager, uygulamalarınızı çalıştırmak ve test etmek için sanal TV cihazları oluşturmanıza olanak tanıyan cihaz tanımları sunar.

Sanal TV cihazı oluşturmak için:

  1. AVD Yöneticisi'ni başlatın. Daha fazla bilgi için Sanal cihaz oluşturma ve yönetme başlıklı makaleyi inceleyin.
  2. AVD Yöneticisi iletişim kutusunda Cihaz Tanımları sekmesini tıklayın.
  3. Android TV cihaz tanımlarından birini seçip AVD oluştur'u tıklayın.
  4. Emülatör seçeneklerini belirleyin ve AVD'yi oluşturmak için Tamam'ı tıklayın.

    Not: TV emülatörü cihazın en iyi performansı için x86 emülatörünü kullanın ve Ana Makine GPU'sunu Kullan seçeneğini etkinleştirin. Kullanılabilir olduğunda sanal cihaz hızlandırmayı da kullanın. Emülatörün donanım hızlandırması hakkında daha fazla bilgi edinmek için Android Emulator için donanım hızlandırmayı yapılandırma bölümüne bakın.

Uygulamanızı sanal TV cihazında test etmek için:

  1. Android Studio'da projenizi seçin ve araç çubuğundan Çalıştır tıklayın.
  2. Select Deployment Target (Dağıtım Hedefi Seçin) penceresinde, sanal TV cihazınızı seçin ve OK (Tamam) seçeneğini tıklayın.

Emülatörleri kullanma hakkında daha fazla bilgi için Android Emülatör'de uygulama çalıştırma bölümüne bakın. Uygulamaları Android Studio'dan sanal cihazlara dağıtma hakkında daha fazla bilgi için Uygulamanızda hata ayıklama bölümüne bakın.

TV uygulamanızın hazır uygulama deneyimi olarak çalışmasını etkinleştirme

Hazır deneyimler, kullanıcıların TV uygulamanızı denemelerini kolaylaştırır ve benimsenme oranını artırmaya yardımcı olabilir.

TV uygulamanızı Android TV cihazında veya emülatörde hazır uygulama olarak çalışacak şekilde ayarlamak için önce hazır uygulama özellikli uygulama paketi oluşturma talimatlarını uygulayın.

Ardından, TV uygulamanızın MainActivity öğesinin intent-filter içinde hem LAUNCHER hem de LEANBACK_LAUNCHER değerinin AndroidManifest.xml içinde tanımlandığından emin olun:

<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" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>
  </activity>

TV uygulamanız hazır uygulama deneyimi olarak çalışacak şekilde yapılandırıldı.

TV uygulamanızı yayına hazırlama

TV uygulamanızı yayın ve dağıtıma hazırlamaya yönelik sonraki adımlar için TV Uygulamaları kontrol listesini inceleyin.