Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Cómo brindar compatibilidad con diferentes versiones de plataformas

Si bien las últimas versiones de Android en general ofrecen API excelentes para tu app, debes continuar admitiendo versiones anteriores de Android hasta que se actualicen más dispositivos. En esta lección, se muestra cómo aprovechar las API más recientes sin dejar de admitir versiones anteriores.

El panel de Versiones de la plataforma se actualiza con regularidad para mostrar la distribución de los dispositivos activos que ejecutan cada versión de Android, según el número de dispositivos que acceden a Google Play Store. En general, se recomienda admitir aproximadamente el 90% de los dispositivos activos y orientar la app a la versión más reciente.

Sugerencia: Con el fin de proporcionar las mejores funciones y funcionalidades en diversas versiones de Android, debes usar la biblioteca de compatibilidad de Android en tu app, que te permite usar varias API recientes de la plataforma en versiones anteriores.

Cómo especificar niveles de API mínimos y objetivo

El archivo AndroidManifest.xml contiene información detallada sobre tu app e identifica las versiones de Android que admite. Específicamente, los atributos minSdkVersion y targetSdkVersion para el elemento <uses-sdk> identifican el nivel de API más bajo con el que tu app es compatible, así como el nivel de API más alto en función del cual diseñaste y probaste tu app.

Por ejemplo:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
        <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
        ...
    </manifest>
    

A medida que se lanzan nuevas versiones de Android, es posible que algunos estilos y comportamientos cambien. A fin de permitir que tu app aproveche esos cambios y asegurarte de que se adapte al estilo de dispositivo de cada usuario, debes configurar el valor targetSdkVersion para que coincida con la última versión disponible de Android.

Cómo comprobar la versión del sistema en el tiempo de ejecución

Android proporciona un código único para cada versión de la plataforma en la clase de constantes Build. Utiliza estos códigos en tu app para compilar condiciones que garanticen que el código que depende de niveles de API más altos se ejecute únicamente cuando esas API estén disponibles en el sistema.

Kotlin

    private fun setUpActionBar() {
        // Make sure we're running on Honeycomb or higher to use ActionBar APIs
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            actionBar.setDisplayHomeAsUpEnabled(true)
        }
    }
    

Java

    private void setUpActionBar() {
        // Make sure we're running on Honeycomb or higher to use ActionBar APIs
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            ActionBar actionBar = getActionBar();
            actionBar.setDisplayHomeAsUpEnabled(true);
        }
    }
    

Nota: Cuando se analizan los recursos XML, Android omite los atributos XML que no son admitidos por el dispositivo actual. Por lo tanto, puedes usar de forma segura los atributos XML que solo sean compatibles con las últimas versiones sin preocuparte porque las versiones anteriores generen errores cuando se encuentren con el código. Por ejemplo, si estableces targetSdkVersion="11", tu app incluye ActionBar de forma predeterminada en Android 3.0 y versiones posteriores. Para luego poder agregar elementos de menú a la barra de acciones, debes establecer android:showAsAction="ifRoom" en el archivo XML de recursos del menú. Es seguro hacer esto en un archivo XML para múltiples versiones, ya que las versiones anteriores de Android simplemente ignoran el atributo showAsAction (es decir, no necesitas una versión independiente en res/menu-v11/).

Cómo usar estilos y temas de la plataforma

Android ofrece temas para la experiencia del usuario que brindan a las apps la apariencia del sistema operativo subyacente. Esos temas se pueden aplicar en tu app dentro del archivo de manifiesto. Si usas estos estilos y temas integrados, tu app adoptará naturalmente la apariencia de Android más reciente cada nueva versión.

Para que tu actividad se muestre como un diálogo:

<activity android:theme="@android:style/Theme.Dialog">

Para que tu actividad tenga un fondo transparente:

<activity android:theme="@android:style/Theme.Translucent">

Para aplicar tu propio tema personalizado definido en /res/values/styles.xml:

<activity android:theme="@style/CustomTheme">

Para aplicar un tema a toda la app (todas las actividades), agrega el atributo android:theme al elemento <application>:

<application android:theme="@style/CustomTheme">

Para obtener más información acerca de cómo crear y usar temas, consulta la guía Estilos y temas.