אפליקציית טלוויזיה שמאפשרת להפעיל תוכן של טלוויזיה בשידור חי נדרשת בחלק מהקטגוריות של מכשירי Android TV, כמו טלוויזיות עם מסך שטוח ומכשירי STB של ספקי שירות. קוד המקור של אפליקציית העזרה זמין בפרויקט הקוד הפתוח של Android.
בדף הזה נסכם איך ליצור ולהתאים אישית אפליקציית טלוויזיה במערכת שמבוססת על Live TV למכשיר הטלוויזיה שלכם עם Android.
יחסי תלות
אפליקציית הטלוויזיה בשידור חי היא רכיב של TV Input Framework (TIF), ואי אפשר להשתמש בה בנפרד מרכיבי ה-TIF האחרים. להסתעפויות השונות של האפליקציה יש יחסי תלות שונים ברמות של Android API:
סניף | רמת ה-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
אם אתם רוצים לאפליקציית הטלוויזיה בשידור חי הרשאות מערכת, תוכלו להשתמש בקוד הבא כדי לדחוף אותה אל /system/priv-app
בפעם הראשונה שתתקינו אותה:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
בדיקה
אחרי שמתקינים את Live TV במכשיר, בודקים אם הוא משולב בצורה תקינה באמצעות הבדיקות הבאות, בנוסף לחבילת בדיקות התאימות ולבדיקות 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)
בבדיקות ה-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'