تطبيق بث تلفزيوني مرجعي

يجب توفُّر تطبيق تلفزيوني لتشغيل محتوى البث التلفزيوني المباشر لبعض فئات أجهزة Android TV، مثل أجهزة التلفزيون المزوّدة بشاشة مسطّحة وأجهزة التحكّم في حدود الجلسة (STB) التابعة لمشغّلي شبكات الجوّال. يتوفّر رمز المصدر للتطبيق المرجعي في مشروع Android Open Source Project.

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

التبعيات

تطبيق "البث التلفزيوني المباشر" هو مكوّن من إطار عمل إدخال المحتوى التلفزيوني (TIF) ولا يمكن استخدامه بشكل مستقل عن مكوّنات TIF الأخرى. تحتوي فروع التطبيق المختلفة على تبعيات مختلفة لمستويات واجهة برمجة التطبيقات في Android:

Branch مستوى واجهة برمجة التطبيقات المستهدف الحد الأدنى لمستوى واجهة برمجة التطبيقات
main 24 (Android 7.0) 23
android-live-tv 23 (Android 6.0) 21
android-live-tv-l-mr1 22 (Android 5.1) 21

الحصول على المصدر

للبدء، اختَر إصدارًا من البث التلفزيوني المباشر من Git. تنطبق التعليمات التالية على الإصدار الحالي من "التلفزيون المباشر". لاستخدام إصدار سابق، عليك التبديل إلى أحد فروع Git المدرَجة في الجدول السابق.

mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j8 -c

إنشاء

لإنشاء رمز البث المباشر، شغِّل ما يلي:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

بث

استخدِم الرمز التالي لدفع محتوى "التلفزيون المباشر" إلى جهاز الاختبار:

adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk

إذا كنت تريد أن يحصل تطبيق Live TV على أذونات النظام، استخدِم الرمز التالي لإرساله إلى /system/priv-app في المرة الأولى التي يتم فيها تثبيته:

adb push $OUT/system/priv-app/LiveTv/LiveTv.apk  /system/priv-app/LiveTv/

الاختبار

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

اختبارات الوحدة

adb shell logcat -c
m LiveTv TVTestInput TVUnitTests -j20 &&\
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\
adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk && \
adb install -r -d $OUT/data/app/TVUnitTests/TVUnitTests.apk && \
adb shell pm clear com.android.providers.tv && \
adb shell pm clear com.android.tv && \
adb shell am instrument \
  -e testSetupMode unit \
  -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\
adb shell input keyevent KEYCODE_HOME &&\
adb shell am instrument \
  -w 'com.android.tv.tests/android.support.test.runner.AndroidJUnitRunner'

الاختبارات الوظيفية

adb shell logcat -c
m LiveTv TVTestInput TVFuncTests -j20 &&\
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\
adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk && \
adb install -r -d $OUT/data/app/TVFuncTests/TVFuncTests.apk && \
adb shell pm clear com.android.providers.tv && \
adb shell pm clear com.android.tv && \
adb shell am instrument \
  -e testSetupMode func \
  -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\
adb shell input keyevent KEYCODE_HOME &&\
adb shell am instrument \
  -w 'com.android.tv.tests.ui/android.support.test.runner.AndroidJUnitRunner'

اختبارات التوقف المؤقت لعرض واجهة المستخدم

تبحث اختبارات الارتباك عن اللقطات المفقودة والتأخيرات في العرض.

adb shell logcat -c
m LiveTv TVTestInput TVJankTests -j20 &&\
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\
adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk &&\
adb install -r -d $OUT/data/app/TVJankTests/TVJankTests.apk &&\
adb shell pm clear com.android.providers.tv &&\
adb shell pm clear com.android.tv &&\
echo "Creating a lot of channels and EPG data, this may take a while" &&\
adb shell am instrument \
  -e testSetupMode jank \
  -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\
adb shell input keyevent KEYCODE_HOME &&\
adb shell am instrument \
  -w 'com.android.tv.tests.jank/android.support.test.runner.AndroidJUnitRunner'