Las apps para TV usan la misma estructura que las apps para teléfonos y tablets. Esta similitud significa que puedes modificar las apps existentes para que se ejecuten en dispositivos de TV o bien crear apps nuevas en función de lo que ya sabes sobre compilación de apps para Android.
Importante: Tu app debe cumplir con requisitos específicos para calificar como app de Android TV en Google Play. Si quieres obtener más información, consulta los requisitos que se detallan en Calidad de las apps para TV.
En esta lección, se describe cómo preparar un entorno de desarrollo donde puedas crear apps para TV, además de los cambios mínimos necesarios para lograr que una app se ejecute en dispositivos de TV.
Te recomendamos que también leas Diseño para TV y Cómo crear diseños de TV. Además, puedes probar la app de ejemplo de Android Leanback en el repositorio de GitHub de Android TV.
Cómo determinar la compatibilidad con formatos multimedia
Consulta la siguiente documentación para obtener información sobre códecs, protocolos y formatos compatibles con Android TV.
Cómo configurar un proyecto para TV
En esta sección, se explica cómo modificar una app para Android existente a fin de que se ejecute en dispositivos de TV o cómo crear una app nueva. Si ya tienes una app para Android, agregar compatibilidad con Android TV te permite diseñar una interfaz de usuario para TV mediante la reutilización de tu arquitectura de apps existente.
A continuación, se detallan los componentes principales que debes usar para crear una app que funcione en dispositivos de TV:
- Actividad para TV (obligatorio): En el manifiesto de tu app, especifica una actividad que vaya a ejecutarse en dispositivos de TV.
- Bibliotecas para TV (opcional): Hay muchas bibliotecas de AndroidX disponibles para dispositivos de TV que proporcionan widgets para crear interfaces de usuario.
Requisitos previos
Antes de comenzar a crear tus apps para TV, debes hacer lo siguiente:
- Actualizar las herramientas de tu SDK a la versión 24.0.0 o a una versión posterior
Las herramientas del SDK actualizadas te permiten compilar y probar apps para TV. - Actualizar tu SDK con Android 5.0 (API nivel 21) o versiones posteriores
La versión actualizada de la plataforma proporciona nuevas API para apps de TV. - Crear o actualizar tu proyecto de app
Para poder acceder a las nuevas API para dispositivos de TV, debes crear un proyecto o modificar uno existente que tenga como objetivo Android 5.0 (API nivel 21) o posterior.
Cómo declarar una actividad para TV
Una aplicación diseñada para ejecutarse en dispositivos de TV debe declarar una actividad de lanzamiento para TV en su manifiesto. Para ello, usa un filtro de intent CATEGORY_LEANBACK_LAUNCHER
. Este filtro identifica que tu app está habilitada para TV y permite que Google Play la identifique como app de TV. Cuando un usuario selecciona tu app en la pantalla principal de la TV, este intent identifica qué actividad se debe iniciar.
En el siguiente fragmento de código, se muestra cómo incluir este filtro de intent en tu manifiesto:
<application android:banner="@drawable/banner" > ... <activity android:name="com.example.android.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.android.TvActivity" android:label="@string/app_name" android:theme="@style/Theme.Leanback"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity> </application>
En la segunda entrada del manifiesto de la actividad que aparece en este ejemplo, se especifica esa actividad como la que se iniciará en un dispositivo de TV.
Precaución: Si no incluyes el filtro de intents CATEGORY_LEANBACK_LAUNCHER
en tu app, los usuarios que ejecuten Google Play en dispositivos de TV no podrán verlo. Además, si tu app no tiene este filtro, cuando uses herramientas para desarrolladores a fin de cargarla en un dispositivo de TV, la app no aparecerá en la interfaz de usuario de la TV.
Si modificas una app existente para su uso en TV, esta no debería usar para TV el mismo diseño de actividad que usa para teléfonos y tablets. La interfaz de usuario de tu app para TV (o la parte para TV de tu app existente) debería proporcionar una interfaz más simple para navegar fácilmente por medio de un control remoto desde un sofá. Para obtener los lineamientos de diseño de apps para TV, consulta la guía Diseño para TV. Si quieres obtener más información sobre los requisitos mínimos de implementación para diseños de interfaces de TV, consulta Cómo crear diseños para TV.
Cómo declarar la compatibilidad con Leanback
Declara que tu app usa la interfaz de usuario de Leanback que se necesita para Android TV. Si desarrollas una app que se ejecuta tanto en dispositivos portátiles (teléfonos, wearables, tablets, etc.) como en Android TV, configura el valor del atributorequired
en false
. Si configuras el valor del atributo required
en true
, tu app se ejecutará únicamente en dispositivos que utilicen la IU de Leanback.
<manifest> <uses-feature android:name="android.software.leanback" android:required="false" /> ... </manifest>
Cómo declarar la pantalla táctil como no obligatoria
Las apps que están diseñadas para ejecutarse en dispositivos de TV no dependen de las pantallas táctiles como método de entrada.
Para que quede claro, el manifiesto de tu app de TV debe declarar que no se requiere la función android.hardware.touchscreen
. Esta configuración identifica a tu app como apta para ejecutarse en un dispositivo de TV y es necesaria para que se considere como tal en Google Play. El siguiente ejemplo de código muestra cómo incluir esta declaración de manifiesto:
<manifest> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest>
Precaución: En el manifiesto de tu app, debes especificar que no se requiere una pantalla táctil según como se muestra en el siguiente ejemplo de código; de lo contrario, tu app no aparecerá en Google Play en dispositivos de TV.
Cómo utilizar un banner en la pantalla principal
Si una app incluye un filtro de intent del selector de Leanback, debe proporcionar una imagen del banner de la pantalla principal para cada localización. El banner es el punto de inicio que aparece en la pantalla principal en las filas de apps y juegos. Para agregar el banner a tu app, descríbelo en el manifiesto de la siguiente manera:
<application ... android:banner="@drawable/banner" > ... </application>
Utiliza el atributo android:banner
con la etiqueta <application>
a fin de proporcionar un banner predeterminado para todas las actividades de la aplicación, o con la etiqueta <activity>
a fin de proporcionar un banner para una actividad específica.
El banner debe ser un recurso xhdpi con un tamaño de 320 × 180 px. Se debe incluir texto en la imagen. Si tu app está disponible en varios idiomas, debes proporcionar distintas versiones del banner con texto para cada idioma admitido.
Cómo cambiar el color del selector
Cuando se inicia una app para TV, el sistema muestra una animación similar a un círculo relleno que se expande. Para personalizar el color de esta animación, configura el atributo android:colorPrimary
de la app o actividad de TV en un color específico. También debes configurar dos atributos de superposición de transición adicionales en true
, como se muestra en el siguiente fragmento de un archivo XML de recursos de temas:
<resources> <style ... > <item name="android:colorPrimary">@color/primary</item> <item name="android:windowAllowReturnTransitionOverlap">true</item> <item name="android:windowAllowEnterTransitionOverlap">true</item> </style> </resources>
Para obtener más información sobre cómo trabajar con temas y estilos, consulta Temas y estilos.
Cómo agregar bibliotecas para TV
Jetpack incluye bibliotecas de paquetes de AndroidX para usarlas con apps para TV. Estas bibliotecas proporcionan widgets de interfaz de usuario y API para dispositivos de TV:
androidx.leanback.app
androidx.leanback.database
androidx.leanback.graphics
androidx.leanback.media
androidx.leanback.preference
androidx.leanback.system
androidx.leanback.widget
androidx.leanback.widget.picker
Cómo crear apps para TV
Una vez que completes los pasos descriptos anteriormente, podrás comenzar a crear apps para la pantalla grande. Echa un vistazo a estos temas adicionales que te ayudarán a crear tu app para TV:
- Cómo crear apps de reproducción de contenido multimedia para TV: Las TV están hechas para entretener, por lo que Android proporciona un conjunto de widgets y herramientas de interfaz de usuario que permiten crear apps para TV que reproduzcan videos y música, y permitan a los usuarios navegar por el contenido que quieran.
- Cómo ayudar a los usuarios para que encuentren tu contenido en la TV: Con todas las opciones de contenido al alcance de sus manos, ayudar a los usuarios a encontrar contenido que les interese es casi tan importante como proporcionarlo. En esta capacitación, se explica cómo ofrecer el contenido en dispositivos de TV.
- Cómo crear juegos para TV: Los dispositivos de TV son plataformas geniales para juegos. Consulta este tema si quieres obtener más información sobre cómo crear excelentes experiencias de juego en la TV.
- Cómo crear canales de TV: Presenta el contenido de tu video con un estilo de "transmisión de TV" lineal con canales y programas a los que los usuarios puedan acceder mediante una guía de programación y con los botones para desplazarse hacia arriba y hacia abajo.
Cómo ejecutar apps para TV
Ejecutar tu app es una parte fundamental del proceso de desarrollo. Puedes hacerlo en dispositivos de TV configurados para que admitan la depuración por USB o usar dispositivos de TV virtuales.
Cómo lograr que la app se ejecute en un dispositivo real
Configura tu dispositivo de la siguiente manera:
- Usa un cable USB para conectar tu dispositivo de TV a la máquina de desarrollo. Si es necesario, consulta la documentación proporcionada por el fabricante del dispositivo.
- En tu dispositivo de TV, navega a Configuración.
- En la fila Dispositivo, selecciona Acerca de.
- Desplázate hacia abajo hasta Compilación y selecciona Compilación varias veces hasta que veas el mensaje "¡Ya eres desarrollador!".
- Vuelve a Configuración. En la fila Preferencias, selecciona Opciones para desarrolladores.
- Selecciona Depuración > Depuración de USB y haz clic en Activada.
- Vuelve a la pantalla principal de la TV.
Para probar tu app en un dispositivo de TV, haz lo siguiente:
- En Android Studio, selecciona tu proyecto y haz clic en Run
en la barra de herramientas.
- En la ventana Select Deployment Target, selecciona tu dispositivo de TV y haz clic en OK.
Cómo ejecutar apps en un dispositivo virtual
El Administrador de AVD en el SDK de Android proporciona al dispositivo definiciones que permiten crear dispositivos de TV virtuales para ejecutar y probar tus apps.
Para crear un dispositivo de TV virtual, haz lo siguiente:
- Inicia el Administrador de AVD. Para obtener más información, consulta la ayuda sobre el Administrador de AVD.
- En el diálogo del Administrador de AVD, haz clic en la pestaña Definiciones de dispositivos.
- Selecciona una de las definiciones de dispositivos Android TV y haz clic en Crear AVD.
- Selecciona las opciones del emulador y haz clic en OK para crear el AVD.
Nota: Para obtener el máximo rendimiento del dispositivo emulador de TV, usa el emulador de x86 y habilita la opción Use Host GPU. Además, usa la aceleración de dispositivos virtuales cuando esté disponible. Para obtener más información sobre la aceleración de hardware del emulador, consulta Cómo configurar la aceleración de hardware.
Para probar tu app en el dispositivo de TV virtual, sigue estos pasos:
- En Android Studio, selecciona tu proyecto y haz clic en Run
en la barra de herramientas.
- En la ventana Select Deployment Target, selecciona tu dispositivo de TV virtual y haz clic en OK.
Para obtener más información sobre cómo usar emuladores, consulta Cómo usar el emulador. Para obtener más información sobre cómo implementar apps desde Android Studio en dispositivos virtuales, consulta Cómo depurar con Android Studio.