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

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

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

التبعيات

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

Branch مستوى واجهة برمجة التطبيقات المستهدف الحد الأدنى لمستوى واجهة برمجة التطبيقات
main الإصدار 24 (الإصدار 7.0 من نظام التشغيل Android) 23
android-live-tv الإصدار 23 (الإصدار 6.0 من نظام التشغيل Android) 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

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

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

الاختبار

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

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

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'

اختبارات Jank

تبحث "اختبارات إيقاف التشغيل" عن اللقطات التي تم إقلاعها وحالات التأخير في العرض.

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'