Aplikasi TV yang memutar konten TV live diperlukan untuk beberapa kelas Android TV perangkat, seperti TV panel dan STB operator. Kode sumber untuk aplikasi referensi tersedia di Project Open Source Android.
Halaman ini merangkum cara membangun dan menyesuaikan aplikasi TV sistem berbasis di TV Live untuk perangkat televisi Android Anda.
Dependensi
Aplikasi Live TV 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 TV Live dari Git. Petunjuk berikut ditujukan bagi pengguna versi baru dari Live TV. 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 membuat kode TV Live, jalankan:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Push
Gunakan kode berikut untuk mengirim TV Live ke perangkat pengujian:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Jika Anda ingin aplikasi Live TV memiliki izin sistem, gunakan kode berikut untuk mengirimkannya 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 Live diinstal di perangkat, uji apakah TV tersebut sudah terintegrasi dengan benar menggunakan pengujian selain Compatibility Test Suite dan uji Pemverifikasi CTS untuk aplikasi TV. Anda harus menghubungkan perangkat atau emulator 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 menurun dan keterlambatan 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'