Se requiere una aplicación de TV que reproduzca contenido de TV en vivo para algunas clases de dispositivos Android TV, como televisores de panel y STB de operador. El código fuente de una aplicación de referencia está disponible en el Proyecto de código abierto de Android.
Esta página resume cómo crear y personalizar una aplicación de TV del sistema basada en Live TV para su dispositivo de televisión Android.
Dependencias
La aplicación Live TV es un componente de TV Input Framework (TIF) y no se puede utilizar independientemente de los otros componentes TIF. Las diferentes ramas de la aplicación tienen diferentes dependencias en los niveles de API de Android:
Rama | Nivel de API objetivo | Nivel mínimo de API |
---|---|---|
main | 24 (Android 7.0) | 23 |
android-live-tv | 23 (Android 6.0) | 21 |
android-live-tv-l-mr1 | 22 (Android 5.1) | 21 |
Obtener la fuente
Para comenzar, seleccione una versión de Live TV de Git. Las siguientes instrucciones son para la versión actual de Live TV. Para usar una versión anterior, cambie a una de las ramas de Git enumeradas en la tabla anterior.
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j8 -c
Construir
Para compilar el código de Live TV, ejecute:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Empujar
Utilice el siguiente código para enviar Live TV a su dispositivo de prueba:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Si desea que la aplicación Live TV tenga permisos del sistema, use el siguiente código para enviarla a /system/priv-app
la primera vez que la instale:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Prueba
Después de instalar Live TV en su dispositivo, pruebe que esté integrado correctamente mediante las siguientes pruebas, además del conjunto de pruebas de compatibilidad y las pruebas del Verificador CTS para la aplicación de TV. Debe tener un dispositivo o emulador conectado para ejecutar todos los tipos de pruebas.
Pruebas unitarias
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'
Pruebas funcionales
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'
Pruebas basura
Las pruebas de bloqueo buscan fotogramas perdidos y retrasos en el renderizado.
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'