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

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

מאמר זה מסכם כיצד לבנות ולהתאים אישית אפליקציית מערכת טלוויזיה המבוססת על טלוויזיה חיה למכשיר הטלוויזיה אנדרואיד שלך. (אתה רשאי להרחיב את יישום הטלוויזיה שלך כדי ליישם את יצרן המכשירים או תכונות ספציפיות למדינה, אולם זה לא במסגרת יישום הטלוויזיה המפנה).

תלות

יישום הטלוויזיה הוא רכיב של מסגרת קלט הטלוויזיה (TIF) ולא ניתן להשתמש בו ללא תלות ברכיבים האחרים. המשמעות היא שרק מכשירים עם TIF יוכלו להריץ את יישום הטלוויזיה החיה .

יישום הטלוויזיה החיה תלוי בממשקי API של Android. לסניפים שונים תלות שונה ברמות ה- API:

לוח 1. סניפי טלוויזיה בשידור חי.

ענף רמת היעד API רמת API מינימלית
לִשְׁלוֹט 24 (אנדרואיד 7.0) 23
אנדרואיד-לייב-טלוויזיה 23 (אנדרואיד 6.0) 21
android-live-tv-l-mr1 22 (אנדרואיד 5.1) 21

קבל את המקור

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

mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b master
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/

מִבְחָן

ברגע ש- TV Live נמצא במכשיר שלך, עליך לבדוק שהוא משולב כהלכה. בנוסף להפעלת חבילת בדיקות התאימות ומבחני ה- 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.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'