Configuración de la biblioteca de compatibilidad

Nota: Con el lanzamiento de Android 9.0 (nivel de API 28), hay una nueva versión de la biblioteca de compatibilidad, denominada AndroidX, que es parte de Jetpack. La biblioteca de AndroidX contiene la biblioteca de compatibilidad existente e incluye los últimos componentes de Jetpack.

Puedes seguir usando la biblioteca de compatibilidad. Los artefactos históricos (aquellos con versiones 27 y anteriores, y empaquetados como android.support.*) seguirán estando disponibles en Google Maven. Sin embargo, todo el desarrollo de bibliotecas nuevas se llevará a cabo en la biblioteca de AndroidX.

Recomendamos usar las bibliotecas de AndroidX en todos los proyectos nuevos. Otra opción es migrar los proyectos existentes a AndroidX también.

La manera en que configuras las bibliotecas de compatibilidad de Android en tu proyecto de desarrollo depende de las funciones que desees usar y la variedad de versiones de plataforma de Android que desees admitir con tu aplicación.

En este documento, encontrarás orientación para la descarga del paquete de bibliotecas de compatibilidad y la adición de bibliotecas a tu entorno de desarrollo.

Las bibliotecas de compatibilidad ahora están disponibles a través del repositorio de Google Maven. Ya no admitimos la descarga de bibliotecas a través de SDK Manager, y esa función se quitará pronto.

Cómo elegir bibliotecas de compatibilidad

Antes de agregar una biblioteca de compatibilidad a tu aplicación, decide las funciones que deseas incluir y las versiones anteriores de Android que quieres admitir. Para obtener más información sobre las funciones proporcionadas por las diferentes bibliotecas, consulta Funciones de la biblioteca de compatibilidad.

Cómo agregar bibliotecas de compatibilidad

Para poder usar una biblioteca de compatibilidad, debes modificar las dependencias de classpath de tu proyecto en tu entorno de desarrollo. Debes realizar este procedimiento con cada biblioteca de compatibilidad que desees usar.

Para agregar una biblioteca de compatibilidad al proyecto de tu aplicación:

  1. Incluye el repositorio Maven de Google en el archivo settings.gradle de tu proyecto.
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
    
            // If you're using a version of Gradle lower than 4.1, you must
            // instead use:
            //
            // maven {
            //     url 'https://maven.google.com'
            // }
        }
    }
  2. Para cada módulo en el que desees usar una biblioteca de compatibilidad, agrega la biblioteca en el bloque dependencies del archivo build.gradle del módulo. Por ejemplo, para agregar la biblioteca core-utils v4, agrega lo siguiente:
    dependencies {
        ...
        implementation "com.android.support:support-core-utils:28.0.0"
    }

Precaución: El uso de dependencias dinámicas (por ejemplo, palette-v7:23.0.+) puede generar actualizaciones inesperadas de versiones e incompatibilidades de regresión. Te recomendamos especificar de modo explícito una versión de biblioteca (por ejemplo, palette-v7:28.0.0).

Cómo usar las API de la biblioteca de compatibilidad

Las clases de bibliotecas de compatibilidad que proporcionan compatibilidad con las APIs de framework existentes suelen tener el mismo nombre que la clase de framework, pero se ubican en los paquetes de clase android.support o tienen el sufijo *Compat.

Precaución: Cuando uses clases de la biblioteca de compatibilidad, asegúrate de importar la clase desde el paquete correspondiente. Por ejemplo, cuando apliques la clase ActionBar:

  • android.support.v7.app.ActionBar cuando uses la biblioteca de compatibilidad.
  • android.app.ActionBar cuando realices desarrollos únicamente para el nivel de API 11 o niveles posteriores.

Nota: Después de incluir la biblioteca de compatibilidad en tu proyecto de aplicación, te recomendamos enfáticamente que reduzcas, ofusques y optimices tu app para su lanzamiento. Además de proteger tu código fuente con ofuscación, la reducción quita las clases no utilizadas de cualquier biblioteca que incluyas en tu aplicación, lo que mantiene el tamaño de descarga de tu aplicación lo más pequeño posible.

En las clases de capacitación, las guías y las muestras para desarrolladores de Android, se proporciona información adicional sobre el uso de las funciones de la biblioteca de compatibilidad. Para obtener más información acerca de las clases y los métodos de las bibliotecas de compatibilidad individuales, consulta los paquetes android.support en la referencia de API.

Cambios en la declaración del manifiesto

Si tienes pensado aumentar la compatibilidad con versiones anteriores de tu aplicación existente para que admita una versión anterior de la Android API con la biblioteca de compatibilidad, asegúrate de actualizar el manifiesto de tu aplicación. Específicamente, debes actualizar el elemento android:minSdkVersion de la etiqueta <uses-sdk> del manifiesto al número nuevo de la versión anterior, como se muestra a continuación:

  <uses-sdk
      android:minSdkVersion="14"
      android:targetSdkVersion="23" />

La configuración del manifiesto indica a Google Play que tu aplicación se puede instalar en dispositivos con Android 4.0 (nivel de API 14) y versiones posteriores.

Si usas archivos de compilación de Gradle, la configuración de minSdkVersion en esos archivos anula las configuraciones del manifiesto.

plugins {
  id 'com.android.application'
}

android {
    ...

    defaultConfig {
        minSdkVersion 16
        ...
    }
    ...
}

En este caso, la configuración del archivo de compilación indica a Google Play que se puede instalar la variante de compilación predeterminada de tu aplicación en dispositivos con Android 4.1 (nivel de API 16) y versiones posteriores. Para obtener más información sobre las variantes de compilación, consulta Información general del sistema de compilación.

Nota: Si incluyes varias bibliotecas de compatibilidad, la versión de SDK mínima debe ser la más alta que requieran las bibliotecas especificadas. Por ejemplo, si tu app incluye la biblioteca de compatibilidad de preferencias v14 y la biblioteca Leanback v17, tu versión mínima de SDK debe ser la 17 o una posterior.