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 Android Open Source Project.
Halaman ini merangkum cara membuat dan menyesuaikan aplikasi TV sistem berdasarkan TV Langsung untuk perangkat televisi Android Anda.
Ketergantungan
Aplikasi TV Langsung adalah komponen dari Kerangka Masukan 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 |
---|---|---|
master | 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 adalah untuk versi Live TV saat ini. Untuk menggunakan versi sebelumnya, beralihlah ke salah satu cabang Git yang terdaftar di tabel sebelumnya.
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8 -c
Membangun
Untuk membuat kode TV Langsung, jalankan:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Dorongan
Gunakan kode berikut untuk mendorong Live TV 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/
Uji
Setelah TV Langsung diinstal pada perangkat Anda, uji apakah perangkat terintegrasi dengan benar menggunakan pengujian berikut selain rangkaian uji Kompatibilitas dan pengujian Verifier CTS untuk aplikasi TV. Anda harus memiliki perangkat atau emulator yang terhubung untuk menjalankan semua jenis pengujian.
Tes 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'
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 jatuh 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'