Estoy leyendo sobre una biblioteca de sala de Android. Veo que cambiaron el paquete android
a androidx
. No entendí eso. ¿Alguien puede explicar, por favor?
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
Incluso esto está disponible con el android
paquete también.
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
- ¿Qué necesitaba empaquetar nuevas bibliotecas de soporte en
androidx
lugar deandroid
? - Caso de uso y factores de afecto en proyectos existentes.
androidx.*
es la jerarquía de paquetes para las bibliotecas de soporte. Todos vendrán en el mismo paquete que nosotros en la era deandroidx
(Al igual que los componentes de arquitectura, otras bibliotecas de soporte).androidx
paquete de COREandroid
.Respuestas:
AndroidX - Biblioteca de extensiones de Android
De la documentación de AndroidX
Necesidad de AndroidX
AndroidX es una biblioteca rediseñada para aclarar los nombres de los paquetes. Entonces, a partir de ahora, la jerarquía de Android será solo para las clases predeterminadas de Android, que viene con el sistema operativo Android y otras bibliotecas / dependencias serán parte de Androidx (tiene más sentido). Entonces, a partir de ahora, todo el nuevo desarrollo se actualizará en androidx.
com.android.support. **: androidx.
com.android.support:appcompat-v7: androidx.appcompat: appcompat com.android.support:recyclerview-v7: androidx.recyclerview: recyclerview com.android.support:design: com.google.android.material: material
Completar asignaciones de artefactos para paquetes de AndroidX
AndroidX usa la versión semántica
Anteriormente,
support library
usaba la versión SDK pero AndroidX usa elSemantic-version
. Va a volver a versionar desde 28.0.0 → 1.0.0.Cómo migrar el proyecto actual
En Android Studio 3.2 (septiembre de 2018), hay una opción directa para migrar un proyecto existente a
AndroidX
. Este refactoriza todos los paquetes automáticamente.Antes de migrar, se recomienda hacer una copia de seguridad de su proyecto.
Pon estas banderas en tu
gradle.properties
Verifique las asignaciones de @ Library para obtener el mismo paquete de AndroidX .
Consulte @ Página oficial de Migrar a AndroidX
¿Qué es el chorro de agua?
Errores de migrar
Soporte 28.0.0 es la última versión?
Desde la revisión de soporte de Android 28.0.0
Así que vaya con AndroidX, porque Android actualizará solo el paquete androidx a partir de ahora.
Otras lecturas
https://developer.android.com/topic/libraries/support-library/androidx-overview
https://android-developers.googleblog.com/2018/05/hello-world-androidx.html
fuente
enableJetifier=false
es el valor predeterminado. Es falso cuando no lo configura. Eso significa que ninguna de sus bibliotecas será reescrita en AndroidX.Migrate to AndroidX
De acuerdo con la documentación :
La estructura del paquete rediseñado es para fomentar bibliotecas más pequeñas y más enfocadas. Aquí encontrará detalles sobre las asignaciones de artefactos .
Hay bibliotecas de soporte (que contienen componentes y paquetes para compatibilidad con versiones anteriores) llamadas "v7" cuando el nivel mínimo de SDK admitido es 14, el nuevo nombre deja en claro la división entre las API incluidas en la plataforma y las bibliotecas para desarrolladores de aplicaciones que se utilizan en diferentes versiones de Android. Puede consultar el anuncio oficial para más detalles.
fuente
AndroidX es el proyecto de código abierto que el equipo de Android utiliza para desarrollar, probar, empaquetar, versionar y lanzar bibliotecas dentro de Jetpack .
AndroidX es una mejora importante para la biblioteca original de soporte de Android . Al igual que la Biblioteca de soporte, AndroidX se envía por separado del sistema operativo Android y ofrece compatibilidad con versiones anteriores de Android. AndroidX reemplaza completamente la Biblioteca de soporte al proporcionar paridad de funciones y nuevas bibliotecas.
Todos los paquetes en AndroidX viven en un espacio de nombres consistente que comienza con la cadena androidx. Los paquetes de la biblioteca de soporte se han mapeado en los correspondientes paquetes androidx. *. Para obtener una asignación completa de todas las clases antiguas y crear artefactos con las nuevas, consulte la página Refactorización de paquetes.
A diferencia de la Biblioteca de soporte, los paquetes de AndroidX se mantienen y actualizan por separado. Los paquetes de Androidx usan estrictamente a
Semantic Versioning
partir de la versión 1.0.0. Puede actualizar las bibliotecas de AndroidX en su proyecto de forma independiente.Todo el nuevo desarrollo de la biblioteca de soporte se realizará en la biblioteca de AndroidX. Esto incluye el mantenimiento de los artefactos originales de la Biblioteca de soporte y la introducción de nuevos componentes de Jetpack.
Usando AndroidX
Consulte Migrar a AndroidX para obtener información sobre cómo migrar un proyecto existente.
Si desea usar AndroidX en un nuevo proyecto, debe configurar el SDK de compilación en Android 9.0 (nivel de API 28) o superior y establecer los siguientes indicadores del complemento Android Gradle en true en su
gradle.properties
archivo.android.useAndroidX
: Cuando se establece en verdadero, el complemento de Android utiliza la biblioteca de AndroidX adecuada en lugar de una biblioteca de soporte. El indicador es falso de forma predeterminada si no se especifica.android.enableJetifier
: Cuando se establece en verdadero, el complemento de Android migra automáticamente las bibliotecas de terceros existentes para usar AndroidX reescribiendo sus archivos binarios. El indicador es falso de forma predeterminada si no se especifica.Para las asignaciones de artefactos, vea esto
fuente
Este artículo Android Jetpack: ¿Qué significan los anuncios recientes para la Biblioteca de soporte de Android? lo explica bien
fuente
Solo algunas partes adicionales de mi parte a todas las respuestas disponibles
Necesidad de AndroidX
Con la convención de nomenclatura actual, no está claro qué paquetes se incluyen con el sistema operativo Android y cuáles se incluyen con el APK ( Kit de paquete de Android ) de su aplicación . Para aclarar esta confusión, todas las bibliotecas desglosadas se moverán al espacio de nombres androidx. * De AndroidX, mientras que la jerarquía de paquetes android. * Se reservará para los paquetes que se envían con el sistema operativo Android.
Aparte de este,
Inicialmente, el nombre de cada paquete indicaba el nivel mínimo de API admitido por ese paquete, por ejemplo, support-v4 . Sin embargo, la versión 26.0.0 de la Biblioteca de soporte aumentó la API mínima a 14 , por lo que hoy en día muchos de los nombres de paquetes no tienen nada que ver con el nivel mínimo de API admitido. Cuando los paquetes support-v4 y support-v7 tienen una API mínima de 14, es fácil ver por qué la gente se confunde. Entonces, ahora con AndroidX, no hay dependencia en el nivel de API.
Otro cambio importante es que los artefactos de AndroidX se actualizarán de forma independiente, por lo que podrá actualizar las bibliotecas de AndroidX individuales en su proyecto, en lugar de tener que cambiar cada dependencia a la vez. ¡Esos mensajes frustrantes de " Todas las bibliotecas com.android.support deben usar exactamente la misma especificación de versión " deberían ser cosa del pasado!
fuente
Conocí AndroidX a partir de este video de Android Dev Summit . El resumen es -
fuente
Es lo mismo que las versiones de soporte de AppCompat, pero tiene menos desorden de las versiones v4 y v7, por lo que es de gran ayuda el uso de los diferentes componentes de los elementos XML de Android.
fuente
androidx
reemplazarásupport library
después28.0.0
. Debes migrar tu proyecto para usarlo.androidx
usosSemantic Versioning
. El usoAndroidX
no se confundirá con la versión que se presenta en el nombre de la biblioteca y el nombre del paquete. La vida se hace mas facil[AndroidX y compatibilidad de soporte]
fuente
AndroidX es el proyecto de código abierto que el equipo de Android utiliza para desarrollar, probar, empaquetar, versionar y lanzar bibliotecas dentro de Jetpack.
Después de horas de lucha, lo resolví incluyendo lo siguiente dentro de app / build.gradle:
Pon estas banderas en tu gradle.properties
Al migrar en el estudio de Android, el archivo de aplicación / gradle se actualiza automáticamente con las implementaciones de la biblioteca de corrección de la biblioteca estándar
Consulte: https://developer.android.com/jetpack/androidx/migrate
fuente
Android proporciona un par de conjuntos de bibliotecas diferentes. Una se llama Biblioteca de soporte de Android y la otra se llama AndroidX. Al seleccionar "Usar artefactos Android. *" Se indica que queremos usar AndroidX.
fuente