Se requiere una app para TV que reproduzca contenido de TV en vivo para algunas clases de dispositivos Android TV, como TVs de panel y STB de operadores. El código fuente de una app de referencia está disponible en el Proyecto de código abierto de Android.
En esta página, se resume cómo compilar y personalizar una app de TV del sistema basada en la TV en vivo para tu dispositivo de TV Android.
Dependencias
La app de TV en vivo es un componente del marco de trabajo de entrada de TV (TIF) y no se puede usar de forma independiente de los otros componentes del TIF. Las diferentes ramas de la app tienen diferentes dependencias en los niveles de API de Android:
Branch | 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 |
Cómo obtener la fuente
Para comenzar, selecciona una versión de TV en vivo de Git. Las siguientes instrucciones son para la versión actual de TV en vivo. Para usar una versión anterior, cambia a una de las ramas de Git que se enumeran 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
Compilación
Para compilar el código de TV en vivo, ejecuta lo siguiente:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Enviar
Usa el siguiente código para enviar TV en vivo a tu dispositivo de prueba:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Si deseas que la app de TV en vivo tenga permisos del sistema, usa el siguiente código para enviarla a /system/priv-app
la primera vez que la instales:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Prueba
Después de instalar la TV en vivo en tu dispositivo, prueba que se haya integrado correctamente con las siguientes pruebas, además del paquete de pruebas de compatibilidad y las pruebas de Verificador de CTS para la app para TV. Debes tener un dispositivo o emulador conectado para ejecutar todos los tipos de pruebas.
Pruebas de unidades
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 de bloqueos
Las pruebas de bloqueo buscan fotogramas perdidos y retrasos en la renderización.
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'