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 la 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 descargar el paquete de bibliotecas de compatibilidad y agregar bibliotecas a tu entorno de desarrollo.

Las bibliotecas de compatibilidad ahora están disponibles a través del repositorio de Maven de Google. 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 las Funciones de la biblioteca de compatibilidad.

Cómo agregar bibliotecas de compatibilidad

Para poder usar una biblioteca de compatibilidad, debes modificar las dependencias de ruta de clase del proyecto de tu aplicación 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. En 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 provocar actualizaciones inesperadas de la versión e incompatibilidades de regresión. Te recomendamos que especifiques explícitamente 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 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. Si deseas obtener más información acerca de las clases y los métodos individuales de las bibliotecas de compatibilidad, consulta los paquetes android.support en la referencia de la API.

Cambios en la declaración del manifiesto

Si quieres aumentar la retrocompatibilidad de tu aplicación existente a una versión anterior de la API de Android 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> en el manifiesto al nuevo número de versión anterior, como se muestra a continuación:

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

La configuración del manifiesto le 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 minSdkVersion de estos 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 la variante de compilación predeterminada de tu aplicación se puede instalar 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 Descripció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 del SDK debe ser la 17 o una posterior.