Aplicación de TV de referencia

Se requiere una aplicación de TV que reproduzca contenido de TV en vivo para algunas clases de dispositivos Android TV, como Panel TV y STB de operador. Se proporciona una aplicación de TV de referencia ( Live TV ) junto con la plataforma Android, que se puede personalizar, ampliar o reemplazar. El código fuente está disponible en el Proyecto de código abierto de Android.

Este artículo resume cómo crear y personalizar una aplicación de TV del sistema basada en Live TV para su dispositivo de televisión Android. (Puede ampliar su aplicación de TV para implementar características específicas del país o del fabricante del dispositivo; sin embargo, esto no está dentro del alcance de la aplicación de TV de referencia).

dependencias

La aplicación de TV es un componente de TV Input Framework (TIF) y no se puede utilizar independientemente de los demás componentes. Esto significa que solo los dispositivos con TIF podrán ejecutar la aplicación Live TV .

La aplicación Live TV depende de las API de Android. Diferentes ramas tienen diferentes dependencias en los niveles de API:

Tabla 1. Sucursales de TV en vivo.

Rama Nivel de API de destino Nivel mínimo de API
Maestro 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 la versión de Live TV que desea de Git. Las instrucciones a continuación son para la versión actual de Live TV, pero puede seleccionar fácilmente una versión anterior cambiando la rama de maestro a una diferente que se muestra en la tabla anterior.

mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8 -c

Construir

Para compilar el código de Live TV, ejecute:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Empujar

Para enviar Live TV a su dispositivo de prueba:

adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk

Si el desarrollador desea que la aplicación LIVE TV tenga permisos del sistema, la primera vez que se instala debe enviarse a /system/priv-app con:

adb push $OUT/system/priv-app/LiveTv/LiveTv.apk  /system/priv-app/LiveTv/

Prueba

Una vez que Live TV esté en su dispositivo, debe probar que esté correctamente integrado. Además de ejecutar el conjunto de pruebas de compatibilidad y las pruebas del verificador CTS para la aplicación de TV, puede utilizar las siguientes pruebas:

Pruebas unitarias

Hay pruebas unitarias y funcionales para la aplicación Live TV. Debe tener un dispositivo (o emulador) conectado para ejecutar las pruebas.

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.google.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.google.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 Jank

Las pruebas de Jank buscan fotogramas caídos 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.google.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'