แอพทีวีอ้างอิง

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

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

การพึ่งพา

แอป Live TV เป็นส่วนประกอบของ TV Input Framework (TIF) และไม่สามารถใช้งานได้โดยอิสระจากส่วนประกอบ TIF อื่นๆ สาขาต่างๆ ของแอปมีการขึ้นต่อกันในระดับ Android API ที่แตกต่างกัน:

สาขา ระดับ API เป้าหมาย ระดับ API ขั้นต่ำ
master 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 เวอร์ชันปัจจุบัน หากต้องการใช้เวอร์ชันก่อนหน้า ให้เปลี่ยนไปใช้หนึ่งในสาขา Git ที่แสดงในตารางก่อนหน้า

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 สำหรับแอป 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.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

การทดสอบ 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'