بدء استخدام تطبيقات التلفزيون

تستخدم تطبيقات التلفزيون البنية نفسها التي تستخدمها تطبيقات الهواتف والأجهزة اللوحية. ويعني هذا التشابه أنّه يمكنك تعديل تطبيقاتك الحالية لتشغيلها أيضًا على أجهزة التلفزيون، أو إنشاء تطبيقات جديدة بناءً على ما تعرفه من قبل عن كيفية إنشاء تطبيقات لنظام Android.

ملاحظة مهمة: يجب أن يستوفي تطبيقك متطلبات محدّدة ليكون تطبيق Android TV على Google Play. لمزيد من المعلومات، يرجى الاطّلاع على المتطلبات المذكورة في جودة تطبيقات البث التلفزيوني.

يشرح هذا الدليل كيفية تجهيز بيئة التطوير لإنشاء تطبيقات تلفزيون والحد الأدنى من التغييرات المطلوبة لتفعيل تشغيل تطبيق على أجهزة التلفزيون.

للحصول على معلومات حول تصميم التطبيقات للتلفزيون، يُرجى الاطّلاع على التصميم للتلفزيون. يمكنك أيضًا الاطّلاع على نماذج التطبيقات في مستودع Android TV GitHub.

تحديد توافق تنسيق الوسائط

راجِع المستندات التالية للحصول على معلومات حول برامج الترميز والبروتوكولات والتنسيقات المتوافقة مع Android TV:

إعداد مشروع تلفزيوني

يناقش هذا القسم كيفية إعداد مشروع تلفزيون، وما إذا كنت تعدّل تطبيق Android حالي لتشغيله على أجهزة التلفزيون أو تنشئ تطبيق تلفزيون جديدًا. إذا كان لديك تطبيق Android حالي، تتيح لك إضافة دعم Android TV تصميم واجهة مستخدم للتلفزيون مع إعادة استخدام بنية تطبيقك الحالية.

الإفصاح عن نشاط تلفزيوني

يجب أن يوضِّح التطبيق المُعدّ للتشغيل على أجهزة التلفزيون في بيانه نشاط مشغّل التطبيقات للتلفزيون. ويستخدِم هذا الفلتر فلتر الأهداف CATEGORY_LEANBACK_LAUNCHER لتنفيذ ذلك. يحدّد هذا الفلتر تطبيقك على أنّه مُفعّل للتلفزيون، ويتيح لـ Google Play التعرّف عليه على أنّه تطبيق تلفزيون. وعندما يختار المستخدم تطبيقك على شاشة التلفزيون الرئيسية، يحدّد هذا الغرض النشاط الذي سيتم إطلاقه.

يعرض مقتطف الرمز التالي كيفية تضمين فلتر الأهداف هذا في البيان:

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

ويوضّح الإدخال الثاني في بيان النشاط في هذا المثال أنّ إطلاق التطبيق على جهاز تلفزيون هو إحدى الأنشطة التي يتم إجراؤها.

تنبيه: إذا لم تضمِّن فلتر الأهداف CATEGORY_LEANBACK_LAUNCHER في تطبيقك، لن يظهر لمستخدمي Google Play على أجهزة التلفزيون. بالإضافة إلى ذلك، إذا كان تطبيقك لا يحتوي على هذا الفلتر عند استخدام أدوات المطوّرين لتحميله على جهاز تلفزيون، لن يظهر التطبيق في واجهة مستخدم التلفزيون.

يجب أن توفّر واجهة المستخدم الخاصة بتطبيق التلفزيون أو جزء التلفزيون من التطبيق الحالي واجهة بسيطة لتسهيل التنقّل باستخدام وحدة تحكُّم عن بُعد على بُعد 3 متر تقريبًا. إذا كنت تعدّل تطبيقًا حاليًا لاستخدامه على التلفزيون، لا تستخدم تنسيق النشاط نفسه للتلفزيون الذي تستخدمه على الهواتف والأجهزة اللوحية. للحصول على إرشادات حول تصميم تطبيق للتلفزيون، راجع تصميم تطبيقات للتلفزيون. لمزيد من المعلومات حول الحدّ الأدنى من متطلبات تنفيذ تنسيقات الواجهة على التلفزيون، يُرجى الاطّلاع على مقالة إنشاء تنسيقات التلفزيون.

إعلان توافق جهاز التلفزيون

يمكنك توضيح أنّ تطبيقك مصمَّم لنظام Android TV من خلال الإفصاح عن ميزة android.software.leanback.

إذا كان تطبيقك يعمل على كلّ من الأجهزة الجوّالة والتلفزيون، اضبط قيمة السمة required على false. في حال ضبط قيمة السمة required على true، لن يوفّر Google Play تطبيقك إلا على نظام التشغيل Android TV.

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

يُرجى توضيح أنّ الشاشة التي تعمل باللمس غير مطلوبة

لا تعتمد التطبيقات المصمّمة للتشغيل على أجهزة التلفزيون على الشاشات التي تعمل باللمس لإدخال البيانات. لتوضيح ذلك، يجب أن يذكر بيان تطبيق البث التلفزيوني أنّ ميزة android.hardware.touchscreen غير مطلوبة. يحدّد هذا الإعداد أنّ تطبيقك يمكنه العمل على جهاز تلفزيون، ويجب أن يتم اعتبار تطبيقك أحد تطبيقات التلفزيون في Google Play. يوضّح مثال الرمز التالي كيفية تضمين تعريف البيان هذا:

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

تنبيه: في بيان التطبيق، يجب توضيح أنّ الشاشة التي تعمل باللمس غير مطلوبة، كما هو موضّح في نموذج الرمز هذا. وإلا لن يظهر تطبيقك في Google Play على أجهزة التلفزيون.

توفير رمز للشاشة الرئيسية وبانر

يجب أن توفّر تطبيقات Android TV رمز الشاشة الرئيسية وصورة بانر لكل عملية ترجمة. استنادًا إلى جهاز Android TV، يتم استخدام الرمز أو إعلان البانر كنقطة إطلاق التطبيق التي تظهر على الشاشة الرئيسية في صفوف التطبيقات والألعاب.

لإضافة هذه العناصر إلى تطبيقك، يُرجى وصف الرمز والبانر في البيان على النحو التالي:

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

رمز الشاشة الرئيسية

يجب أن توفّر تطبيقات Android TV رمز الشاشة الرئيسية، تمامًا مثل جميع تطبيقات Android. للاطّلاع على أفضل الممارسات حول تحديد نقطة إطلاق رائعة لتطبيقك ومتطلبات مواد العرض التفصيلية، يمكنك الاطّلاع على الإرشادات المتعلّقة برمز تطبيق Android TV وبانر.

استخدِم السمة android:banner مع العلامة <application> لتقديم بانر تلقائي لجميع أنشطة التطبيق، أو مع العلامة <activity> لتقديم إعلان بانر لنشاط معيّن.

بالنسبة إلى إعلان البانر، استخدِم مورد xhdpi بحجم 320 × 180 بكسل. يجب تضمين النص في الصورة. إذا كان تطبيقك متاحًا بأكثر من لغة واحدة، يجب توفير إصدارات منفصلة من إعلان البانر مع نص لكل لغة معتمَدة.

تغيير لون مشغّل التطبيقات

تنبيه: في الإصدار 12 من نظام التشغيل Android والإصدارات الأحدث، لا يمكن لتطبيقات Android TV استخدام الصور المتحركة المخصّصة لشاشة البداية والتي تم إنشاؤها باستخدام SplashScreen Platform API.

عند تشغيل تطبيق تلفزيون، يعرض النظام صورة متحركة تشبه دائرة واسعة ومملوءة. لتخصيص لون هذه الصورة المتحركة، اضبط السمة android:colorPrimary في تطبيقك على التلفزيون أو نشاطك على لون معيّن. يمكنك أيضًا ضبط سمتَين لتداخل الانتقالات على true كما هو موضّح في المقتطف التالي من ملف XML لمورد المظهر:

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

لمزيد من المعلومات حول التعامل مع المظاهر والأنماط، يمكنك الاطّلاع على الأنماط والمظاهر.

إنشاء تطبيق متوافق مع نظام التشغيل Android TV

يمكن استخدام معظم مكتبات AndroidX مع Android TV. استخدِم المكوّنات الأساسية، مثل ViewModel، لإدارة بيانات واجهة المستخدم الواعية لمراحل النشاط، وRoom للدمج مع قواعد بيانات SQLite المحلية تمامًا كما تستخدم للأجهزة الجوّالة.

تتوافق معظم مكتبات AndroidX مع Android TV. ويمكن أن تستخدم تطبيقات التلفزيون مكونات البنية نفسها التي تستخدمها التطبيقات للأجهزة الجوّالة. ويمكنك أيضًا مشاركة المكونات بين أشكال الأجهزة، وبذلك لن تحتاج سوى إلى التخصِّص في منطق العرض التقديمي لتطبيق التلفزيون.

إنشاء رسالة للتلفزيون

استخدِم Jetpack Compose لإنشاء واجهة مستخدم لنظام التشغيل TV. ميزة "إنشاء" هي الطريقة الحديثة التي يستخدمها نظام Android لتطوير واجهة المستخدم. توفّر مكتبات Compose المخصّصة للتلفزيون، إلى جانب مكتبات Compose الأساسية، مكوّنات مخصَّصة مصمَّمة خصيصًا للشاشة الكبيرة:

تعرَّف على كيفية إنشاء تطبيق تلفزيون باستخدام ميزة Compose للتلفزيون في استخدام Jetpack Compose على Android TV.

مجموعة أدوات واجهة مستخدم Leanback (لا يُنصح باستخدامها)

تقدم مجموعة أدوات واجهة مستخدم Leanback في السابق واجهات برمجة تطبيقات وأدوات واجهة مستخدم حصريًا لأجهزة التلفزيون التي تستخدم طرق عرض Android وأجزاءه:

تعرَّف على كيفية إنشاء تطبيق تلفزيون باستخدام مجموعة أدوات واجهة المستخدم من Leanback في استخدام مجموعة أدوات واجهة مستخدم Leanback.

تشغيل تطبيقات التلفزيون

يُعد تشغيل التطبيق جزءًا مهمًا من عملية التطوير. يمكنك تشغيل تطبيقك على أجهزة تلفزيون تم إعدادها لإتاحة تصحيح أخطاء USB أو استخدام أجهزة التلفزيون الافتراضية.

الركض على جهاز فعلي

يمكنك إعداد جهاز التلفزيون على النحو التالي:

  1. استخدِم كابل USB لتوصيل جهاز التلفزيون بجهاز التطوير. إذا لزم الأمر، يمكنك الاطّلاع على المستندات التي تقدّمها الشركة المصنّعة لجهازك.
  2. انتقِل إلى الإعدادات على جهاز التلفزيون.
  3. في صف الجهاز، اختَر لمحة.
  4. انتقِل إلى إنشاء واختَر إنشاء عدة مرات إلى أن تظهر لك رسالة "أنت الآن مطور برامج".
  5. ارجع إلى الإعدادات. في صف الإعدادات المفضّلة، اختَر خيارات المطوّرين.
  6. اختَر تصحيح الأخطاء > تصحيح أخطاء USB وانقر على تفعيل.
  7. انتقِل مجددًا إلى شاشة التلفزيون الرئيسية.

لاختبار التطبيق على جهاز التلفزيون:

  1. في "استوديو Android"، اختَر مشروعك وانقر على تشغيل من شريط الأدوات.
  2. في نافذة اختيار هدف النشر، اختَر جهاز التلفزيون وانقر على حسنًا.

التشغيل على جهاز افتراضي

يوفّر "مدير AVD" في حزمة تطوير البرامج (SDK) لنظام التشغيل Android تعريفات للأجهزة تتيح لك إنشاء أجهزة تلفزيون افتراضية لتشغيل تطبيقاتك واختبارها.

لإنشاء جهاز تلفزيون افتراضي:

  1. شغِّل "مدير AVD". لمزيد من المعلومات، راجِع المقالة إنشاء الأجهزة الافتراضية وإدارتها.
  2. في مربّع الحوار AVD Manager، انقر على علامة التبويب تعريفات الأجهزة.
  3. اختَر أحد تعريفات جهاز Android TV وانقر على إنشاء متوسّط مدة المشاهدة.
  4. حدِّد خيارات المحاكي وانقر على حسنًا لإنشاء متوسّط مدة المشاهدة.

    ملاحظة: للحصول على أفضل أداء لجهاز محاكي التلفزيون، استخدِم المحاكي x86 وفعِّل الخيار استخدام وحدة معالجة الرسومات الخاصة بالمضيف. ويمكنك أيضًا استخدام ميزة "تسريع الأجهزة الافتراضية" عند توفّرها. ولمزيد من المعلومات حول تسريع الأجهزة لدى المحاكي، يُرجى الاطّلاع على ضبط تسريع الأجهزة في مُحاكي Android.

لاختبار تطبيقك على جهاز التلفزيون الافتراضي:

  1. في "استوديو Android"، اختَر مشروعك وانقر على تشغيل من شريط الأدوات.
  2. في نافذة اختيار هدف النشر، اختَر جهاز التلفزيون الافتراضي وانقر على حسنًا.

لمزيد من المعلومات عن استخدام المحاكيات، يمكنك الاطّلاع على تشغيل التطبيقات على محاكي Android. لمزيد من المعلومات عن نشر التطبيقات من "استوديو Android" على الأجهزة الافتراضية، يمكنك الاطّلاع على تصحيح أخطاء التطبيق.

تفعيل تطبيق التلفزيون ليعمل كتجربة فورية

تسهِّل التجارب الفورية على المستخدمين تجربة تطبيقك على التلفزيون ويمكن أن تساعد في زيادة معدّل استخدام التطبيق.

لإعداد تطبيق Android TV لتشغيله كتطبيق فوري على جهاز أو محاكي Android TV، عليك أولاً اتّباع تعليمات إنشاء حِزمة تطبيق تم تفعيل ميزة التطبيقات الفورية فيها.

بعد ذلك، في intent-filter الخاصة بتطبيق MainActivity الخاص بتطبيقك للتلفزيون، تأكَّد من تضمين الترميزَين LAUNCHER وLEANBACK_LAUNCHER في AndroidManifest.xml:

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

تم إعداد تطبيق البث التلفزيوني الآن ليتم تشغيله كتجربة فورية.

تحضير تطبيقك التلفزيوني للنشر

يمكنك مراجعة قائمة التحقّق الخاصة بتطبيقات البث التلفزيوني للاطّلاع على الخطوات التالية لإعداد تطبيق التلفزيون للنشر والتوزيع.