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 dayalı yeni uygulamalar oluşturabileceğiniz anlamına gelir.

Ö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 uygulaması kalite bölümünde listelenen şartlara bakın.

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

TV için uygulama tasarlama hakkında bilgi edinmek isterseniz TV için tasarlama ve TV düzenleri oluşturma konularına bakın. Örnek bir TV uygulamasını incelemek için Android TV GitHub deposundaki Android Leanback örnek uygulamasına bakı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 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, TV projesinin nasıl oluşturulacağı açıklanmaktadır. Mevcut bir Android uygulamanız varsa Android TV desteğini ekleyerek mevcut uygulama mimarinizi yeniden kullanırken TV için kullanıcı arayüzü tasarlayabilirsiniz.

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

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

Ön koşullar

TV için bir 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 bir sürümü hedefleyen mevcut bir projede değişiklik yapın.

TV etkinliği bildirme

TV cihazlarında çalışması amaçlanan bir uygulamanın, manifest dosyasında TV için başlatıcı etkinliği beyan etmesi gerekir. 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 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ı 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 manifest girişi, bunun bir TV cihazında başlatılacak etkinlik olduğunu belirtir.

Dikkat: Uygulamanıza CATEGORY_LEANBACK_LAUNCHER intent filtresini dahil etmezseniz Google Play'i TV cihazlarında çalıştıran kullanıcılar bu filtreyi göremez. Ayrıca, uygulamanızı bir TV cihazına yüklemek için geliştirici araçlarını 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 uzaktan kumandayla kolay gezinme için basit bir arayüz sağlamalıdır. TV'de kullanmak üzere mevcut bir uygulamayı değiştiriyorsanız TV için telefon 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.

Leanback desteği bildirin

Uygulamanızın, Android TV'nin gerektirdiği Leanback kullanıcı arayüzünü kullandığını beyan edin. Uygulamanız hem Android TV'de hem de mobil cihazlarda çalışıyorsa required özellik değerini false olarak ayarlayın. required özellik değerini true olarak ayarlarsanız uygulamanız yalnızca Leanback kullanıcı arayüzünü kullanan cihazlarda çalışabilir.

<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 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 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'deki 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 ekrandaki 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 dosyasında simgeyi ve banner'ı aşağıdaki şekilde açıklayı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 etkinlik için 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.

Bir TV uygulaması başladığı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ındaki 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.

TV kitaplığı ekle

Jetpack, TV uygulamalarıyla kullanılmak üzere androidx paket kitaplıkları içerir. Şu kitaplıklar, TV cihazları için API'ler ve kullanıcı arayüzü widget'ları sağlar:

TV uygulamaları oluşturma

Daha önce listelenen adımları tamamladıktan sonra sıra büyük ekran için uygulamalar oluşturmaya gelir. TV için uygulamanızı geliştirmenize yardımcı olacak şu ek konulara göz atın:

  • TV oynatma uygulamaları geliştirme: TV'ler eğlendirmek için tasarlanmıştır. Bu yüzden Android, video ve müzik oynatan ve kullanıcıların istedikleri içeriğe göz atmalarına olanak tanıyan TV uygulamaları oluşturmak için bir dizi kullanıcı arayüzü aracı ve widget'ı sağlar.
  • Kullanıcıların Android TV'de içeriğinizi bulmalarına yardımcı olun: Tüm içerik seçenekleri kullanıcıların parmaklarının ucunda olduğundan, beğendikleri içeriği bulmalarına yardımcı olmak neredeyse bu içeriği sağlamak kadar önemlidir. Bu rehberde, içeriğinizi TV cihazlarında nasıl göstereceğiniz anlatılmaktadır.
  • TV oyunları geliştirin: TV cihazları, oyunlar için mükemmel bir platformdur. TV için mükemmel oyun deneyimleri oluşturma hakkında bilgi edinmek için bu konuya bakın.
  • TV giriş hizmetleri oluşturun: Video içeriğinizi, kullanıcılarınızın bir program rehberinin yanı sıra kanal yukarı veya aşağı düğmelerinin yanı sıra erişebileceği kanallar ve programlarla doğrusal, "TV yayını" tarzında sunun.

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

Uygulamanızın çalıştırılması, 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 çalıştırabilir veya sanal TV cihazları kullanabilirsiniz.

Gerçek bir cihazda çalıştırma

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

  1. TV'nizi 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 seçeneğine gidin ve "Artık bir geliştiricisiniz" mesajını görene kadar birkaç kez Derleme'yi seçin.
  5. Ayarlar'a geri dönün Tercihler satırında Geliştirici seçenekleri'ni belirleyin.
  6. Hata ayıklama > USB üzerinden hata ayıklama'yı ve 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'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 Yöneticisi'ni başlatın. Daha fazla bilgi için Sanal cihaz 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 ortalama görüntüleme süresini 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. Select Deployment Target (Dağıtım Hedefi Seçin) penceresinde sanal TV cihazınızı seçin ve OK'i (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ğı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 deneyim olarak çalışmasını etkinleştirme

Hazır deneyimler, kullanıcıların TV uygulamanızı denemesini 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 içinde belirtildiğinden 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ıldı.

TV uygulamanızı yayına hazırlama

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