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

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

این مقاله به طور خلاصه نحوه ساخت و شخصی سازی برنامه تلویزیونی سیستمی مبتنی بر Live TV را برای دستگاه تلویزیون Android شما ارائه می دهد. (شما می توانید برنامه تلویزیون خود را برای پیاده سازی سازنده دستگاه یا ویژگی های خاص کشور گسترش دهید ، اما این در محدوده برنامه مرجع تلویزیون نیست.)

وابستگی ها

برنامه تلویزیونی جز component چارچوب ورودی تلویزیون (TIF) است و نمی تواند به طور مستقل از سایر اجزا مورد استفاده قرار گیرد. این بدان معنی است که فقط دستگاه هایی با TIF قادر به اجرای برنامه Live TV هستند.

برنامه Live TV به API های Android بستگی دارد. شاخه های مختلف وابستگی های مختلفی به سطح API دارند:

جدول 1. شاخه های تلویزیون زنده.

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

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

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

mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b master
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 Verifier برای برنامه تلویزیون ، می توانید از این تست ها در زیر استفاده کنید:

آزمایشات واحد

آزمونهای عملکردی و واحدی برای برنامه Live TV وجود دارد. برای اجرای آزمایشات باید دستگاه (یا شبیه ساز) متصل داشته باشید.

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.google.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.google.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.google.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'