AndroidX es un conjunto de bibliotecas Jetpack de Google que reemplazó a la obsoleta Support Library. Según la Google Developer Documentation, 2024, AndroidX proporciona componentes compatibles hacia atrás para todas las versiones de Android y es el estándar del desarrollo moderno de Android. Las bibliotecas AndroidX incluyen herramientas para UI, navegación, manejo de datos, cámara y tareas en segundo plano.
Puntos clave
AndroidX es una biblioteca de código abierto que forma parte de Android Jetpack. Google lanzó AndroidX en 2018 como reemplazo de Support Library, que desde 2011 proporcionaba componentes compatibles hacia atrás para versiones antiguas de Android.
Antes de AndroidX, cada componente de Support Library tenía su propia versión vinculada a targetSdkVersion. Los desarrolladores tenían que incluir varias versiones de la misma biblioteca simultáneamente, lo que provocaba conflictos de dependencias y aumentaba el tamaño del APK.
AndroidX resolvió este problema mediante el versionado semántico (SemVer). Ahora cada biblioteca es un artefacto Gradle independiente con una versión en formato MAJOR.MINOR.PATCH. Los desarrolladores pueden actualizar Room de 2.4.0 a 2.6.0 sin tocar Activity, Fragment u otros módulos.
El primer lanzamiento estable de AndroidX 1.0.0 se produjo en diciembre de 2018 junto con Android 9 Pie. Google anunció que Support Library entraba en modo de mantenimiento y que todos los componentes nuevos — Navigation, WorkManager, Compose — se lanzarían solo como parte de AndroidX. La última versión de Support Library — 28.0.0 — se lanzó en 2019.
Según Google I/O 2019, la razón clave de la transición fue la necesidad de acelerar el lanzamiento de actualizaciones. En el modelo antiguo, una biblioteca tenía que esperar a otra debido a una versión única del paquete. AndroidX eliminó este cuello de botella, y Jetpack comenzó a recibir versiones mayores y menores cada 2–3 meses.
La principal diferencia es el espacio de nombres. Support Library usaba el paquete android.support.*, mientras que AndroidX pasó a androidx.*. Este cambio permitió dividir las bibliotecas en módulos funcionales. Por ejemplo, Fragment en Support Library se llamaba android.support.v4.app.Fragment, mientras que en AndroidX es androidx.fragment.app.Fragment.
La segunda diferencia importante es la arquitectura. AndroidX se distribuye con Jetpack — un conjunto de recomendaciones de arquitectura de aplicaciones. Jetpack incluye ViewModel, LiveData, Room, Navigation y WorkManager, diseñados como un ecosistema unificado en lugar de utilidades dispersas.
La compatibilidad hacia atrás también mejoró. Mientras que Support Library soportaba Android 2.3+, AndroidX garantiza su funcionamiento en dispositivos con Android 4.0 (API 14) y superiores, cubriendo más del 99% de los dispositivos activos según Google Play Console 2024.
AndroidX incluye más de 100 bibliotecas agrupadas por categorías. Cada grupo cubre un área específica: UI, datos, navegación, tareas en segundo plano, multimedia y pruebas. A continuación se presenta una visión general de los módulos clave.
androidx.core:core es la biblioteca base que contiene versiones compatibles hacia atrás de las API del sistema: NotificationCompat, ActivityCompat, ContextCompat. El módulo core-ktx proporciona extensiones Kotlin para trabajar con archivos, SharedPreferences y elementos de vista.
La biblioteca androidx.activity:activity introdujo la API Activity Result (registerForActivityResult), reemplazando al obsoleto startActivityForResult. El módulo fragment:fragment gestiona el ciclo de vida de los fragmentos y admite FragmentManager para transacciones y pila de retroceso.
androidx.lifecycle es la base de la arquitectura Jetpack. LifecycleOwner y LifecycleObserver permiten que los componentes reaccionen a los cambios del ciclo de vida de Activity o Fragment. ViewModel conserva los datos durante la rotación de pantalla, mientras que LiveData notifica a la UI sobre los cambios en los datos.
class MainViewModel : ViewModel() {
private val _users = MutableLiveData<List<User>>()
val users: LiveData<List<User>> = _users
fun loadUsers() {
viewModelScope.launch {
val result = repository.getUsers()
_users.value = result
}
}
}
androidx.recyclerview:recyclerview es un potente componente para mostrar listas y cuadrículas. RecyclerView admite LayoutManager (LinearLayoutManager, GridLayoutManager), ItemDecoration y animaciones mediante ItemAnimator. La biblioteca ListAdapter con AsyncListDiffer simplifica la actualización de listas con cálculo automático de diferencias.
androidx.navigation:navigation es una biblioteca para la navegación entre pantallas. El Componente de Navegación funciona con NavHostFragment y NavController, admite Safe Args para pasar parámetros tipados y Deep Links para enlaces externos. NavGraph describe todas las rutas en un archivo XML.
androidx.compose.ui es un framework de UI declarativo, Jetpack Compose, construido sobre Kotlin. A diferencia del sistema View, Compose solo redibuja los elementos modificados mediante recomposición. Los componentes de Material Design 3 (Button, TextField, Scaffold) están disponibles en el módulo material3.
| Biblioteca | Artefacto | Propósito |
|---|---|---|
| Fragment | androidx.fragment | Gestión de fragmentos y transacciones |
| RecyclerView | androidx.recyclerview | Listas y cuadrículas optimizadas |
| Navigation | androidx.navigation | Navegación entre pantallas |
| Compose UI | androidx.compose.ui | UI declarativa en Kotlin |
androidx.room:room es un ORM para almacenamiento local de datos. Room genera clases DAO a partir de consultas SQLite anotadas, valida la sintaxis SQL en tiempo de compilación y admite RxJava y Kotlin Flow. La versión 2.6 incluye soporte para KSP para una generación de código más rápida.
androidx.work:workmanager es una biblioteca para tareas en segundo plano con ejecución garantizada. WorkManager admite tareas periódicas, cadenas de trabajo (beginWith, then) y criterios de ejecución (Constraints: red, carga, almacenamiento). Incluso si la aplicación está cerrada, WorkManager entrega la tarea después de reiniciar el dispositivo.
androidx.datastore:datastore es un reemplazo moderno de SharedPreferences. DataStore usa Kotlin Coroutines y Flow, funciona de forma síncrona y asíncrona, evitando el bloqueo del hilo de UI. Preferences DataStore almacena pares clave-valor simples, mientras que Proto DataStore maneja objetos tipados mediante Protocol Buffers.
La migración automática es la forma recomendada por Google para pasar de Support Library a AndroidX. Android Studio desde la versión 3.2 incluye la herramienta integrada Refactor Migrate to AndroidX, que reemplaza los espacios de nombres y actualiza las dependencias en build.gradle.
Antes de la migración, debes actualizar la versión de compileSdk a 28 o superior. También asegúrate de que todas las bibliotecas de terceros sean compatibles con AndroidX. Si alguna dependencia aún no ha migrado, usa la bandera android.enableJetifier=true en gradle.properties — reescribe automáticamente el bytecode de las bibliotecas de terceros.
En Android Studio, selecciona Refactor Migrate to AndroidX del menú. El IDE escaneará todo el proyecto, encontrará todas las importaciones del paquete android.support.* y las reemplazará por androidx.*. También se actualizarán las dependencias en app/build.gradle — los artefactos de Support Library se reemplazarán por las versiones correspondientes de AndroidX.
Después de la migración, Gradle Sync puede mostrar errores si algunas dependencias no se encontraron. Revisa la lista de bibliotecas utilizadas en la documentación de Google Maven — todos los artefactos de AndroidX están publicados en google(). Si una biblioteca no está disponible, añade mavenCentral() en repositories.
android {
compileSdk 34
}
dependencies {
// Support Library (obsoleto)
// implementation 'com.android.support:appcompat-v7:28.0.0'
// AndroidX
implementation 'androidx.core:core-ktx:1.13.1'
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'androidx.activity:activity-ktx:1.9.3'
implementation 'androidx.fragment:fragment-ktx:1.8.5'
implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation 'androidx.room:room-runtime:2.6.1'
ksp 'androidx.room:room-compiler:2.6.1'
}
Si el proyecto es demasiado grande o contiene Vistas personalizadas de Support Library, el reemplazo automático puede ser incompleto. Reemplaza manualmente todas las cadenas en el código: cambia las importaciones, los atributos XML (app/src/main/res) y las referencias en el manifiesto. Para los atributos de Support Library, el prefijo android: cambia a app: (por ejemplo, app:cardCornerRadius en lugar de android:cardCornerRadius).
Después de la migración manual, verifica las referencias R. Support Library exportaba recursos mediante android.support.v7.appcompat.R, mientras que AndroidX usa androidx.appcompat.R. Busca en el proyecto y reemplaza todas las referencias a rutas R antiguas. La compilación del proyecto debe completarse sin errores ni advertencias de deprecación.
La primera ventaja de AndroidX es la modularidad. Solo incluyes las bibliotecas que realmente usas. Si tu aplicación solo necesita RecyclerView y Navigation, no es necesario incorporar toda Support Library con todos los componentes View. Esto reduce el tamaño del APK y acelera el tiempo de compilación.
La segunda ventaja son las actualizaciones regulares. Jetpack publica versiones estables cada 1–3 meses. Room 2.6.0, lanzado en 2024, añadió soporte para KSP y compatibilidad con Kotlin 2.0. Navigation 2.8.0 introdujo rutas con seguridad de tipos basadas en Kotlinx Serialization. Los desarrolladores obtienen nuevas funciones sin esperar la próxima versión de Android.
La tercera ventaja es la integración con Kotlin. Todas las bibliotecas AndroidX tienen módulos -ktx con funciones de extensión. viewLifecycleOwner.lifecycleScope lanza corrutinas en el contexto del fragmento, collectLatest procesa Flow, y SharedFlow y StateFlow son totalmente compatibles con componentes lifecycle-aware. Esto hace que el código sea más conciso y seguro.
La compatibilidad hacia atrás es una ventaja clave de AndroidX frente a las nuevas API de la plataforma. Puedes usar AppCompatDelegate.setDefaultNightMode para el tema oscuro en Android 4.0+, NotificationCompat.setBubble para burbujas en Android 5.0+ y LocationRequestCompat para ubicación combinada en Android 4.0+. La cobertura de dispositivos alcanza el 99% sin aumentar la versión mínima del SDK.
La cuarta ventaja son las pruebas. AndroidX incluye la biblioteca androidx.test para escribir pruebas instrumentadas y unitarias. FragmentScenario y ActivityScenario permiten probar componentes de UI de forma aislada, mientras que TestNavHostController permite verificar la navegación sin ejecutar un dispositivo real. MockK y Robolectric completan el ecosistema.
Preguntas frecuentes
AndroidX usa el espacio de nombres androidx.* en lugar de android.support.*, tiene versionado independiente (SemVer), incluye las bibliotecas Jetpack y admite extensiones Kotlin -ktx. Support Library se congeló en la versión 28.0.0 en 2019.
En Android Studio, activa la bandera Use AndroidX en el paso de creación del proyecto. Para proyectos existentes, añade android.useAndroidX=true y android.enableJetifier=true en gradle.properties. Luego reemplaza las dependencias en build.gradle por artefactos del grupo androidx.
Google Play exige que todas las aplicaciones y actualizaciones usen AndroidX. El soporte de Support Library se ha interrumpido y ya no recibe parches de seguridad. Si tu aplicación aún no ha migrado, esto puede provocar el rechazo de la actualización en Google Play Console.
Jetpack es un conjunto de bibliotecas, herramientas y recomendaciones de Google para el desarrollo de aplicaciones Android. AndroidX es la base de Jetpack. Jetpack incluye Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) y Behavior (WorkManager, Navigation, CameraX).
Sí, Jetpack Compose mismo es parte de AndroidX (androidx.compose.ui). Las bibliotecas ViewModel, Navigation, Room y WorkManager son totalmente compatibles con Compose. Las funciones collectAsState() y collectAsStateWithLifecycle() proporcionan integración de Flow con funciones Composable.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.