Aplikasi TV yang memutar konten TV live diperlukan untuk beberapa class perangkat Android TV, seperti TV panel dan STB operator. Kode sumber untuk aplikasi referensi tersedia di Proyek Open Source Android.
Halaman ini merangkum cara mem-build dan menyesuaikan aplikasi TV sistem berdasarkan TV Live untuk perangkat televisi Android Anda.
Dependensi
Aplikasi TV Live adalah komponen dari Framework Input TV (TIF) dan tidak dapat digunakan secara terpisah dari komponen TIF lainnya. Cabang aplikasi yang berbeda memiliki dependensi yang berbeda pada level API Android:
Cabang | Tingkat API target | Tingkat API minimum |
---|---|---|
main |
24 (Android 7.0) | 23 |
android-live-tv |
23 (Android 6.0) | 21 |
android-live-tv-l-mr1 |
22 (Android 5.1) | 21 |
Mendapatkan sumber
Untuk memulai, pilih versi Live TV dari Git. Petunjuk berikut ditujukan untuk Live TV versi saat ini. Untuk menggunakan versi sebelumnya, beralihlah ke salah satu cabang Git yang tercantum dalam tabel sebelumnya.
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j8 -c
Build
Untuk mem-build kode Live TV, jalankan:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Push
Gunakan kode berikut untuk mengirim Live TV ke perangkat pengujian Anda:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Jika Anda ingin aplikasi Live TV memiliki izin sistem, gunakan kode berikut untuk mendorongnya ke
/system/priv-app
saat pertama kali menginstalnya:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Tes
Setelah TV Live diinstal di perangkat Anda, uji apakah TV Live terintegrasi dengan benar menggunakan pengujian berikut selain Rangkaian pengujian kompatibilitas dan Pengujian CTS Verifier untuk aplikasi TV. Anda harus memiliki perangkat atau emulator yang terhubung untuk menjalankan semua jenis pengujian.
Pengujian unit
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'
Pengujian fungsional
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'
Pengujian jank
Pengujian jank mencari frame yang terputus dan penundaan dalam rendering.
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'