אפליקציית עזר לטלוויזיה

בחלק מהכיתות ב-Android TV נדרשת אפליקציית טלוויזיה שאפשר להפעיל בה תוכן של טלוויזיה בשידור חי מכשירים, כמו טלוויזיות פאנל ומכשירי STB של מפעיל. קוד המקור של אפליקציית עזר זמינה בפרויקט הקוד הפתוח של Android.

בדף הזה מופיע סיכום של תהליך היצירה וההתאמה האישית של אפליקציית מערכת לטלוויזיה בטלוויזיה בשידור חי במכשיר Android TV.

יחסי תלות

אפליקציית Live TV היא רכיב של מסגרת קלט הטלוויזיה (TIF). ולא ניתן להשתמש בו בנפרד מרכיבי TIF האחרים. להסתעפויות שונות של האפליקציה יחסי תלות שונים ברמות ה-API של Android:

סניף רמת ה-API לטירגוט רמת API מינימלית
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

כדי ליצור את הקוד לטלוויזיה בשידור חי, מריצים את הפקודה:

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

בדיקה

אחרי שמתקינים את Live TV במכשיר, צריך לבדוק שהוא משולב בצורה תקינה באמצעות הכלים הבאים בדיקות בנוסף לחבילת בדיקות התאימות והבדיקות של CTS Verifier לאפליקציה לטלוויזיה. כדי להריץ את כל סוגי הבדיקות, צריך להיות לכם מכשיר או אמולטור מחוברים.

בדיקות יחידה (unit testing)

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'