อ้างอิงแอป TV

Android TV บางคลาสจำเป็นต้องมีแอปทีวีที่เล่นเนื้อหารายการทีวีสด อุปกรณ์ เช่น ทีวีติดแผงและผู้ให้บริการ STB ซอร์สโค้ด สำหรับแอปอ้างอิงมีอยู่ในโครงการโอเพนซอร์ส Android

หน้านี้สรุปวิธีสร้างและปรับแต่งแอป System TV โดยอิงตาม บนทีวีสดสำหรับอุปกรณ์ Android TV

การขึ้นต่อกัน

แอป Live TV เป็นคอมโพเนนต์ของเฟรมเวิร์กอินพุตทีวี (TIF) และไม่สามารถใช้อย่างอิสระจากคอมโพเนนต์ TIF อื่นๆ แอปสาขาต่างๆ ทรัพยากร Dependency ต่างๆ ในระดับ 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/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/

ทดสอบ

หลังจากติดตั้งรายการทีวีสดในอุปกรณ์แล้ว ให้ทดสอบว่าได้ผสานรวมอุปกรณ์อย่างถูกต้องโดยใช้สิ่งต่อไปนี้ นอกเหนือไปจากชุดทดสอบความเข้ากันได้ และการทดสอบ CTS Verifier สำหรับแอปทีวี คุณต้องมีอุปกรณ์หรือโปรแกรมจำลองที่เชื่อมต่ออยู่เพื่อเรียกใช้การทดสอบทุกประเภท

การทดสอบ 1 หน่วย

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'

การทดสอบการกระตุก

การทดสอบการกระตุกจะตรวจหาเฟรมที่กระตุกและความล่าช้าในการแสดงผล

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'