TV uygulamalarını kullanmaya başlama

TV uygulamaları, telefonlar ve tabletler için olan uygulamalarla aynı yapıyı kullanır. Bu benzerlik, mevcut uygulamalarınızı TV cihazlarında da çalışacak şekilde değiştirebileceğiniz veya Android için uygulama geliştirme hakkında zaten bildiklerinize dayanarak yeni uygulamalar oluşturabileceğiniz anlamına gelir.

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

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

TV için uygulama tasarlama hakkında bilgi edinmek isterseniz TV için tasarlama konusuna bakın. Android TV GitHub deposundaki örnek uygulamalara da göz atabilirsiniz.

Medya biçimi desteğini belirleme

Android TV'nin desteklediği codec'ler, protokoller ve biçimler hakkında bilgi için aşağıdaki dokümanlara bakın:

TV projesi oluşturma

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

TV cihazlarında çalışan bir uygulama oluştururken kullandığınız iki ana bileşen vardır:

  • TV etkinliği: Uygulama manifestinizde, TV cihazlarında çalışması amaçlanan bir etkinlik tanımlayın.
  • TV kitaplıkları: İsteğe bağlı olarak, TV cihazları için kullanılabilen ve bu kılavuzun başka bir bölümünde listelenen androidx kitaplıklarından en az birini ekleyin. Bu kitaplıklar, kullanıcı arayüzleri oluşturmak için widget'lar sağlar.

Ön koşullar

TV için uygulama oluşturmaya başlamadan önce aşağıdaki adımları uygulamalısınız:

  • SDK araçlarınızı 24.0.0 veya sonraki bir sürüme güncelleyin.
    Güncellenen SDK araçları, TV için uygulamalar oluşturup test etmenize olanak tanır.
  • SDK'nızı Android 5.0 (API 21) veya sonraki bir sürüme güncelleyin.
    Güncellenen platform sürümü, TV uygulamaları için yeni API'ler sağlar.
  • Uygulama projenizi oluşturun veya güncelleyin.
    TV cihazları için yeni API'lere erişmek üzere bir proje oluşturun ya da Android 5.0 (API düzeyi 21) veya sonraki sürümleri hedefleyen mevcut bir projede değişiklik yapın.

TV etkinliği bildirme

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

Aşağıdaki kod snippet'inde bu intent filtresini manifest dosyanıza nasıl ekleyeceğiniz gösterilmektedir:

<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, bunun bir TV cihazında başlatılacak etkinlik olduğunu belirtir.

Dikkat: Uygulamanıza CATEGORY_LEANBACK_LAUNCHER intent filtresini dahil etmezseniz bu filtre, TV cihazlarında Google Play'i çalıştıran kullanıcılar tarafından görülemez. Ayrıca, uygulamanızı bir TV cihazına yüklemek için geliştirici araçlarını kullandığınızda uygulamanız bu filtreye sahip değilse 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 uzaktan kumanda kullanarak kolay gezinme için basit bir arayüz sağlamalıdır. Mevcut bir uygulamayı TV'de kullanmak üzere değiştiriyorsanız TV'de telefon ve tabletlerde kullandığınız etkinlik düzeninin aynısını 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 belirterek uygulamanızın Android TV için geliştirildiğini beyan edin.

Uygulamanız hem mobil 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ı sadece Android TV OS'te kullanılabilir hale getirir.

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

Dokunmatik ekranın gerekli olmadığını beyan et

TV cihazlarında çalışması amaçlanan uygulamalar, giriş için dokunmatik ekranları kullanmaz. Bunu açıkça belirtmek için TV uygulamanızın manifest dosyasında, android.hardware.touchscreen özelliğinin gerekli olmadığı açıklanmalıdır. Bu ayar, uygulamanızın bir 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 ekleneceğ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ğlayın

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

Bunları uygulamanıza eklemek için manifest'teki simgeyi ve banner'ı aşağıdaki gibi tanımlayın:

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

Ana ekran simgesi

Tüm Android uygulamaları gibi Android TV uygulamaları da 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 gereksinimleri için Android TV uygulama simgesi ve banner yönergelerine bakın.

Tüm uygulama etkinlikleri için varsayılan bir banner sağlamak amacıyla <application> etiketiyle veya belirli bir etkinliğe banner sağlamak için <activity> etiketiyle 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 banner'ın, desteklenen her dil için metin içeren ayrı sürümlerini 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ında desteklenmez.

TV uygulaması başlatıldığında sistem, genişleyen, dolgulu 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 edinmek için Stiller ve Temalar bölümüne bakın.

Android TV OS için uygulama oluşturma

Jetpack, TV uygulamalarıyla kullanılmak üzere androidx paket kitaplıkları içerir.

TV için e-posta oluştur

Android TV OS'e yönelik uygulama oluşturmak için önerilen yöntem oluşturma yöntemidir. Compose for TV kitaplıkları, temel Compose kitaplıklarının yanı sıra büyük ekran için özel olarak tasarlanmış özel bileşenler sağlar:

Android TV'de Jetpack Compose'u kullanma başlıklı makalede, TV için Compose'u kullanarak TV uygulaması oluşturma hakkında bilgi edinin.

Leanback kullanıcı arayüzü araç seti

Leanback kullanıcı arayüzü araç seti, TV cihazları için API'ler ve kullanıcı arayüzü widget'ları sağlar:

TV oynatma uygulamaları oluşturma sayfasındaki 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ın çalışması, geliştirme sürecinin önemli bir parçasıdır. Uygulamanızı, USB üzerinden hata ayıklamayı destekleyecek veya sanal TV cihazlarını kullanacak şekilde yapılandırılmış TV cihazlarında çalıştırabilirsiniz.

Fiziksel bir cihazda çalıştırın

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

  1. TV'nizi geliştirme makinenize bağlamak için USB kablosu kullanın. Gerekirse cihazınızın üreticisi tarafından sağlanan dokümanlara bakın.
  2. TV cihazınızda Ayarlar'a gidin.
  3. Cihaz satırında Hakkında'yı seçin.
  4. Derleme bölümüne ilerleyin ve "Artık bir geliştiricisiniz!" mesajını görene kadar Oluştur'u birkaç kez 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ı ve 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. Deployment Target (Dağıtım Hedefi Seç) penceresinde TV cihazınızı seçip OK'i (Tamam) 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ı sağlar.

Sanal TV cihazı oluşturmak için:

  1. AVD Manager'ı başlatın. Daha fazla bilgi için Sanal cihazlar oluşturma ve yönetme başlıklı makaleye göz atın.
  2. AVD Manager 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ından en iyi performansı elde etmek için x86 emülatörünü kullanın ve Use Host GPU (Ana Makine GPU'sunu Kullan) seçeneğini etkinleştirin. Kullanılabilir olduğunda sanal cihaz hızlandırmayı da kullan. Emülatörün donanım hızlandırması hakkında daha fazla bilgi için Android Emülatörü 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. Dağıtım Hedefi Seçin penceresinde sanal TV cihazınızı seçin ve Tamam'ı tıklayın.

Emülatörleri kullanma hakkında daha fazla bilgi için Uygulamaları Android Emülatör'de çalıştırma başlıklı makaleyi inceleyin. Uygulamaları Android Studio'dan sanal cihazlara dağıtmayla ilgili 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ı bir 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 için intent-filter öğesinde hem LAUNCHER hem de LEANBACK_LAUNCHER öğesinin AndroidManifest.xml politikasında 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 artık hazır deneyim olarak çalışacak şekilde yapılandırılmış.

TV uygulamanızı yayına hazırlama

TV uygulamanızı yayına ve dağıtıma hazırlamayla ilgili sonraki adımlar için TV Uygulamaları kontrol listesini inceleyin.