Register now for Android Dev Summit 2019!

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 de la versión 27 y anteriores, y empaquetados como android.support.*) seguirán estando disponibles en Google Maven. Sin embargo, todo el desarrollo de bibliotecas nuevas ocurrirá en la biblioteca de AndroidX.

Recomendamos utilizar 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 características 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 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 Google Maven en el archivo build.gradle de nivel superior.
        allprojects {
            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. Agrega la biblioteca de compatibilidad a la sección dependencies. Por ejemplo, para agregar la biblioteca core-utils v4, agrega las siguientes líneas:
        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 Support Library API

Las clases de bibliotecas de compatibilidad que proporcionan compatibilidad con las API de marco de trabajo existentes normalmente tienen el mismo nombre que la clase de marco de trabajo 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 el proyecto de tu aplicación, te recomendamos usar la herramienta ProGuard para preparar el lanzamiento del APK de la app. Además de proteger tu código fuente, la herramienta ProGuard también quita las clases no usadas de cualquier biblioteca que incluyas en tu aplicación, lo cual reduce al máximo posible el tamaño de descarga de esta. Para obtener más información, consulta ProGuard.

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 características 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 deseas aumentar la compatibilidad con versiones anteriores de tu app existente a una versión anterior de la API de Android con la biblioteca de compatibilidad, asegúrate de actualizar el manifiesto de tu app. Específicamente, debes actualizar el elemento android:minSdkVersion de la etiqueta <uses-sdk> en el manifiesto al nuevo número de versión inferior, 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 minSdkVersion en estos archivos anula las configuraciones del manifiesto.

    apply plugin: '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 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.