The Android Developer Challenge is back! Submit your idea before December 2.

Cómo comenzar a usar apps para TV

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 programación de apps para Android.

Importante: Tu app debe cumplir con requisitos específicos para calificar como app de Android TV en Google Play. Para 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 para TV. Además, puedes probar la app de muestra 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 de Android existente para que se ejecute en dispositivos de TV, o bien cómo crear una app nueva. Si tienes una app de Android existente, agregar la compatibilidad con Android TV te permite diseñar una interfaz de usuario para TV a partir de la arquitectura de la app 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:

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, debe usar un filtro de intent CATEGORY_LEANBACK_LAUNCHER. Este filtro identifica tu app como habilitada para TV y le permite a Google Play identificarla como tal. Cuando un usuario selecciona tu app en la página principal de su TV, este intent identifica la actividad que debe iniciarse.

El siguiente fragmento de código 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 intent 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

Especifica que tu app usa la interfaz de usuario Leanback que se necesita para Android TV. Si desarrollas una app que se ejecuta tanto en dispositivos móviles (teléfonos, wearables, tablets, etc.) como en Android TV, configura el valor del atributo required en false. Si configuras el valor del atributo required en true, tu app se ejecutará únicamente en dispositivos que usen 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 dejarlo en claro, debes especificar que no se requiere la función android.hardware.touchscreen en el manifiesto de tu app para TV. 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.

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>
    

Usa el atributo android:banner con la etiqueta <application> a fin de proporcionar un banner predeterminado para todas las actividades de aplicaciones, o bien con la etiqueta <activity> para 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 la animación, debes establecer el atributo android:colorPrimary de tu actividad o app para TV en un color específico. También deberías establecer 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:

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 para 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 para 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:

  1. 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.
  2. En tu dispositivo de TV, navega a Configuración.
  3. En la fila Dispositivo, selecciona Acerca de.
  4. Desplázate hacia abajo hasta Compilación y selecciona Compilación varias veces hasta que veas el mensaje "¡Ya eres desarrollador!".
  5. Vuelve a Configuración. En la fila Preferencias, selecciona Opciones para desarrolladores.
  6. Selecciona Depuración > Depuración de USB y haz clic en Activada.
  7. Vuelve a la pantalla principal de la TV.

Para probar tu app en un dispositivo de TV, haz lo siguiente:

  1. En Android Studio, selecciona tu proyecto y haz clic en Run  en la barra de herramientas.
  2. 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:

  1. Inicia el Administrador de AVD. Para obtener más información, consulta la ayuda sobre el Administrador de AVD.
  2. En el diálogo del Administrador de AVD, haz clic en la pestaña Definiciones de dispositivos.
  3. Selecciona una de las definiciones de dispositivos Android TV y haz clic en Crear AVD.
  4. Selecciona las opciones del emulador y haz clic en Aceptar 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 Usar GPU del host. 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:

  1. En Android Studio, selecciona tu proyecto y haz clic en Run  en la barra de herramientas.
  2. 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.