X

Soporte de Diferentes Versiones de Plataforma Android

Aunque que las últimas versiones de Android proporcionan a menudo nuevas APIs para tu app, deberías continuar dando soporte a versiones de Android más antiguas hasta que la mayoría de los dispositivos hayan actualizado. Esta lección de muestra cómo tomar la ventaja de las últimas APIs y al mismo tiempo mantener el soporte de las versiones más viejas.

El dashboard de las Versiones de Plataforma se actualiza regularmente para mostrar la distribución de los dispositivos activos ejecutando cada versión de Android, basándose en el número de dispositivos que visitan la Google Play Store. Generalmente es una buena práctica dar soporte al 90% de los dispositivos activos o más, pero dirigiendo tu app a la última versión.

Consejo: Para proporcionar las mejores características y funcionalidades a lo largo de varias versiones Android, deberías utilizar la Android Support Library en tu app, la cual te permite utilizar las APIs de la plataforma más recientes en las versiones antiguas.

Especificar los Niveles de API Objetivo y Mínimo

El archivo AndroidManifest.xml describe los detalles obre tu app e identidades sobre cuales versiones de Android soporta. Específicamente, el atributo minSdkVersion dentro del elemento <uses-sdk identifica la API de menor nivel con la que tu app es compatible y la API de mayor nivel para la cual tu app ha sido diseñada y testeada.

Por ejemplo:

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

Las nuevas versiones de Android que son publicadas pueden modificar el comportamiento y los estilos. Permite que tu app tome las ventajas de dichos cambios y asegúrate de que tu app encaja con el estilo de cada dispositivo de los usuarios, por tanto deberías utilizar el valor del atributo targetSdkVersion para que sea el de la última versión Android disponible.

Comprobar la Versión del Sistema en Tiempo de Ejecución

Android proporciona un código único para cada versión de plataforma en la clase Build. Utiliza dichos códigos dentro de tu app para crear condiciones que aseguren que tu código que depende de los niveles de API superiores es ejecutado únicamente cuando dichas APIs se encuentren disponibles en el sistema.

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);
    }
}

O también puedes indicarlo del siguiente modo:

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

Nota: Cuando analiza recursos XML, Android ignora los atributos XML que no son soportados por el dispositivo actual. Así puedes utilizar atributos XML de forma segura que sean soportados únicamente por versiones superiores sin preocuparte sobre si las versiones antiguas dejarían de funcionar cuando encontrasen dicho código. Por ejemplo, si tu seleccionas targetSdkVersion)"11", tu app incluye la ActionBar por defecto en Android 3.0 o superior. Entonces añadir elementos de menú a la action bar, necesitas utilizar android:showAsAction="ifRoom" en tu recurso de menú XML. Esto es seguro en archivos XML de diferentes versiones, ya que las versiones más antiguas de Android simplemente ignorarán el atributo showAsAction (es decir, no necesitas crear una versión separada en res/menu-v11/).

Uso de Estilos y Temas de la Plataforma

Android proporciona temas para la experiencia de usuario que dan a las apps el aspecto y las sensaciones que transmite el mismo sistema operativo. Esos temas pueden aplicarse a tu app dentro del archivo manifest. Utilizando esos estilos y temas, que ya se encuentran listos para utilizarse, tu app seguirá el último aspecto de forma natural de Android con cada nueva versión publicada.

Para que tu actividad tenga el aspecto de una caja de 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 tu app al completo (todas las actividades), añade el atributo android:theme al elemento <application>:

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

Para más información sobre crear y utilizar temas, visita la guía Estilos y Temas.

Puedes ver más información sobre Soporte de Diferentes Versiones de Plataforma Android en la página oficial de Google en inglés pulsando aquí.

Los comentarios de Disqus están cargando....