Aplikasi TV yang memutar konten TV langsung diperlukan untuk beberapa kelas perangkat Android TV, seperti TV panel dan STB operator. Kode sumber untuk aplikasi referensi tersedia di Proyek Sumber Terbuka Android.
Halaman ini merangkum cara membuat dan menyesuaikan aplikasi TV sistem berdasarkan TV Langsung untuk perangkat televisi Android Anda.
Ketergantungan
Aplikasi TV Langsung adalah komponen Kerangka Input TV (TIF) dan tidak dapat digunakan secara terpisah dari komponen TIF lainnya. Cabang aplikasi yang berbeda memiliki ketergantungan yang berbeda pada level API Android:
Cabang | Tingkat API sasaran | 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 |
Dapatkan sumbernya
Untuk memulai, pilih versi TV Langsung dari Git. Petunjuk berikut ditujukan untuk versi Live TV 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
Membangun
Untuk membuat kode TV Langsung, jalankan:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Dorongan
Gunakan kode berikut untuk memasukkan TV Langsung ke perangkat pengujian Anda:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Jika Anda ingin aplikasi TV Langsung memiliki izin sistem, gunakan kode berikut untuk memasukkannya ke /system/priv-app
saat pertama kali Anda menginstalnya:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Tes
Setelah TV Langsung diinstal pada perangkat Anda, uji apakah perangkat tersebut 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.
Tes satuan
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'
Tes 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'
Tes jank
Tes jank mencari frame yang terjatuh 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'