برنامه تلویزیون مرجع

یک برنامه تلویزیونی که محتوای تلویزیون زنده را پخش می کند برای برخی از کلاس های دستگاه های Android TV، مانند تلویزیون های پنلی و STB های اپراتور، لازم است. کد منبع یک برنامه مرجع در پروژه متن باز Android موجود است.

در این صفحه نحوه ساخت و سفارشی کردن یک برنامه تلویزیونی سیستمی بر اساس Live TV برای دستگاه تلویزیون Android شما خلاصه می شود.

وابستگی ها

برنامه تلویزیون زنده جزئی از چارچوب ورودی تلویزیون (TIF) است و نمی‌تواند مستقل از سایر اجزای TIF استفاده شود. شاخه های مختلف برنامه وابستگی های متفاوتی به سطوح Android API دارند:

شاخه سطح API را هدف قرار دهید حداقل سطح API
main 24 (اندروید 7.0) 23
android-live-tv 23 (اندروید 6.0) 21
android-live-tv-l-mr1 22 (اندروید 5.1) 21

منبع را دریافت کنید

برای شروع، نسخه Live TV را از Git انتخاب کنید. دستورالعمل های زیر برای نسخه فعلی تلویزیون زنده است. برای استفاده از نسخه قبلی، به یکی از شاخه های Git که در جدول قبلی فهرست شده است بروید.

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

ساختن

برای ساخت کد Live TV، اجرا کنید:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

فشار دادن

از کد زیر برای فشار دادن Live TV به دستگاه آزمایشی خود استفاده کنید:

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/

تست

پس از نصب Live TV روی دستگاهتان، با استفاده از تست‌های زیر علاوه بر مجموعه تست سازگاری و آزمایش‌های تأییدکننده 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'

تست های جانک

تست‌های 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'