Читать книгу El gran libro de Android 9ed - Jesus Tomás Gironés - Страница 50
1.6.19. Las librerías de compatibilidad (support library)
ОглавлениеTal y como se ha descrito, la filosofía tradicional de Android ha sido que las novedades que aparecen en una API solo puedan usarse en dispositivos que soporten esa API. Como acabamos de ver, la fragmentación de las versiones de Android es muy grande, es decir, actualmente podemos encontrar dispositivos con una gran variedad de versiones. Con el fin de que la aplicación pueda ser usada por el mayor número posible de usuarios hemos de ser muy conservadores a la hora de escoger la versión mínima de API de nuestra aplicación. La consecuencia es que las novedades que aparecen en las últimas versiones de Android no pueden ser usadas.
En la versión 3.0 aparecieron importantes novedades que Google quería que se incorporaran en las aplicaciones lo antes posible (fragments, nuevas notificaciones, etc.). Con este fin creó las librerías de compatibilidad para poder incorporar ciertas funcionalidades en cualquier versión de Android.
Vídeo[tutorial]: Las librerías de compatibilidad (support library)
Desde la versión 9.0 las librerías de compatibilidad también se incluyen en las librerías AndroidX5, que son parte del proyecto Jetpack6. En las librerías AndroidX se incluye tanto las librerías de compatibilidad como los componentes de Jetpack.
A diferencia de la librería de compatibilidad, cada paquete de AndroidX tiene su propia versión, y se mantienen y actualizan de manera separada. Todos los paquetes están en un espacio de nombre que empieza por androidx.*.
Algunos paquetes muy usados se muestran a continuación:
• v4 Support Library: (androidx.legacy:legacy-support-v4) Esta librería permitía utilizar muchas clases introducidas en la versión 3.0 cuando trabajábamos con un API mínimo. En la actualidad ya no es necesaria utilizarla, dado que ya es recomendable utilizar como API mínimo la versión 4.0 o, superior. Puede usarse en una aplicación con nivel de API 4 (v1.6) o superior. Incorpora las clases: Fragment, NotificationCompat, LocalBroadcastManager, ViewPager, PagerTitleStrip, PagerTabStrip, DrawerLayout, SlidingPaneLayout, ExploreByTouchHelper, Loader y FileProvider.
• appcompat: (androidx.appcompat) Permite utilizar un IU basado en la Barra de Acciones siguiendo especificaciones de Material Design. Se añade por defecto cuando creamos un nuevo proyecto. Incorpora las clases: ActionBar, AppCompatActivity, AppCompatDialog y ShareActionProvider.
• recyclerview: (androidx.recyclerview) Incorpora la vista RecyclerView, una versión mejorada que reemplaza a ListView y GridView.
• constraintlayout: Da soporte al layout ConstraintLayout.
• preference: (androidx.preference) Incorpora las clases CheckBoxPreference y ListPreference usadas en preferencias.
• cardview: (androidx.cardview) Incorpora la vista CardView, una forma estándar de mostrar información especialmente útil en Android Wear y TV.
• palette: (androidx.palette) Incorpora la clase Palette, que permite extraer los colores principales de una imagen.
• mediarouter: (androidx.mediarouter) Da soporte a Google Cast.
• Design Support Library: (com.google.android.material) Librería que incorpora varios componentes de Material Design.
Si tienes dudas sobre los nuevos paquetes utilizados consulta la siguiente tabla: https://developer.android.com/jetpack/androidx/migrate