Diferencia entre android-support-v7-appcompat y android-support-v4

Respuestas:

170

ACTUALIZAR

Se han realizado muchos cambios en la biblioteca de soporte desde que se respondió esta pregunta. Lo bueno es que también está muy bien documentado. Por lo tanto, debe leer la documentación de la biblioteca de soporte para obtener más detalles y más bibliotecas de soporte disponibles.

A partir de la versión 26.0.0 de la biblioteca de soporte (julio de 2017), el nivel mínimo de API admitido en la mayoría de las bibliotecas de soporte ha aumentado a Android 4.0 (nivel de API 14) para la mayoría de los paquetes de la biblioteca.


A continuación se muestra la diferencia con los paquetes de la biblioteca de soporte :

v4 Biblioteca de soporte

Esta biblioteca está diseñada para usarse con Android 1.6 (API nivel 4) Android 2.3 (API nivel 9) Android 4.0 (API nivel 14) y superior. Incluye el mayor conjunto de API en comparación con otras bibliotecas, incluido el soporte para componentes de aplicaciones, características de interfaz de usuario, accesibilidad, manejo de datos, conectividad de red y utilidades de programación.

Bibliotecas v7

Hay varias bibliotecas diseñadas para ser utilizadas con Android 2.1 (API nivel 7) Android 2.3 (API nivel 9) Android 4.0 (API nivel 14) y superior. Estas bibliotecas proporcionan conjuntos de características específicas y se pueden incluir en su aplicación independientemente una de la otra.

v7 biblioteca appcompat

Esta biblioteca agrega soporte para el patrón de diseño de la interfaz de usuario de la Barra de acciones.

Nota: esta biblioteca depende de la biblioteca de soporte v4. Si está utilizando Ant o Eclipse, asegúrese de incluir la biblioteca de soporte v4 como parte de la ruta de clase de esta biblioteca.

Entonces, sí, necesitas ambos frascos si quieres usar v7.


Actualización para android-support-v13.jar

v13 Biblioteca de soporte

Esta interfaz quedó en desuso en el nivel API 27.1.0. Use Fragment en lugar del framework Fragment.

v13 Biblioteca de soporte

Esta biblioteca está diseñada para usarse con Android 3.2 (API nivel 13) y superior. Agrega soporte para el patrón de interfaz de usuario Fragment con la clase (FragmentCompat) y clases adicionales de soporte de fragmentos

Cuando vea los detalles del paquete , tiene una clase FragmentCompat como se indica en la definición. Por lo tanto, no tiene todas las clases de la biblioteca appcompat.

Pankaj Kumar
fuente
2
Si está desarrollando una aplicación desde min api 19. ¿Necesita estos?
2
Bibliotecas de soporte v4 : estas bibliotecas están diseñadas para usarse con Android 2.3 (API nivel 9) y superior.
Vadik
1
Y bibliotecas de soporte v7 : hay varias bibliotecas diseñadas para usarse con Android 2.3 (API nivel 9) y superior.
Vadik
@ user5366495 Probablemente sí. La mayoría de las cosas buenas son para API21 and above y si desea usarlo en niveles bajos, debe usar la biblioteca de soporte para eso. Así que aún podría necesitarlo API19.
Mahdi-Malv
48

¿Qué es una biblioteca de soporte?

Las bibliotecas de soporte son bibliotecas de códigos (Colección de clases) que hacen que una característica recientemente agregada funcione con los dispositivos más antiguos.
Por ejemplo, Material Design se introdujo en API 21 (Android 5.0 - Lolipop) pero
la biblioteca de soporte v7 hace disponible para API 7 (Android 2.1.x -Eclair) y superior.

¿Qué son las diferentes bibliotecas de soporte?

Algunas de las principales bibliotecas de soporte son

  • Biblioteca de soporte V4

  • Biblioteca de soporte V7

  • Biblioteca de soporte V8

  • v13 Biblioteca de soporte

¿Qué significa 7 en v7 Support Library?

Significa que esta biblioteca tiene características diseñadas para usarse con API nivel 7 y superior. Lo mismo ocurre con V4 (contiene características destinadas a API 4 y superior) y así sucesivamente.

¿Diferencia entre la biblioteca de soporte v7 y la biblioteca v7 appcompat?

Pocas personas, incluido yo, se confunden con estos dos términos. En realidad, la biblioteca v7 appcompat es parte de la biblioteca v7 Support. La biblioteca de soporte v7 se desarrolló principalmente para soportar el diseño de materiales y el patrón de diseño de ActionBar para API 7 y superior.
V7 se puede clasificar en más subcategorías

  • v7 biblioteca appcompat

  • v7 biblioteca cardView

  • Biblioteca v7 recyclerView

  • v7 biblioteca de paletas, etc.

La biblioteca v7 appcompat tiene las siguientes clases clave: ActionBar, ActionBarActivity, ShareActionProvider.

Entonces agregando,

com.android.support:appcompat-v7:21.0.+

dependencia en su archivo gradle, importa las clases mencionadas anteriormente.

Prima

Otras bibliotecas de soporte

Biblioteca de soporte multidex (para crear aplicaciones con más de 65k métodos)
v17 Biblioteca de soporte Leanback (una biblioteca de soporte que proporciona widgets importantes para Android TV)

Enlaces relevantes

Rohit Singh
fuente
66
Esta debería ser la respuesta aceptada, explica claramente todo en palabras simples.
gegobyte
44

La biblioteca de soporte solo es necesaria si su versión sdk mínima es inferior al nivel 11 de API. De lo contrario, no necesita agregar una biblioteca de soporte a su proyecto para el nivel 11 o superior de Api.

android-support-v4.jar: Soporteandroid.app clases de para ayudar con el desarrollo de aplicaciones para Android API nivel 4 o posterior. Para que pueda hacer compatible la contraseña de su aplicación,

android-support-v7.jar Se agregó recientemente en la última actualización de la biblioteca de soporte. ActionBar para permitir la implementación del patrón de diseño de la interfaz de usuario de la barra de acción de nuevo a Android 2.1 (API nivel 7) y superior. El uso de esta clase requiere que implemente su actividad extendiendo la nueva ActionBarActivityclase.

Si deseo agregar la barra de acción appcompat en mi aplicación, ¿debo agregar android-support-v7-appcompat.jar y android-support-v4.jar o solo android-support-v7-appcompat.jar.

Sí, debe agregar la referencia de ambas bibliotecas si desea usarla.

¿android-support-v13.jar tiene appcompat?

No, incluye FragmentCompat, de modo que si se agrega alguna de las características de Fragment agregadas después de la versión 13, puede hacer que el backword sea compatible con Api nivel 11. para que la API de orientación de aplicaciones 11 o superior pueda usar la característica que se agregó en las versiones más nuevas.

Bhavesh Patadiya
fuente
9
DrawerLayout/ NavigationDraweractualmente solo existe en las bibliotecas de soporte.
Kiran
3
Hay otros componentes que puede usar en su aplicación de Android que se basan en una de las bibliotecas de soporte que no está incluida de manera predeterminada en las API de más de 11, como com.android.support:multidex:1.0.0 y com.android. soporte: diseño: 23.1.0. compruebe esto para obtener información completa: developer.android.com/tools/support-library/features.html
aselims
como dice google en developer.android.com/topic/libraries/support-library/… no hay diferencia entre el soporte v4 y el soporte v7. Ambos son para la API 9 y superiores. ¡¿Es esto cierto?!
Mahdi
Kenji, sí, es verdad. Google shift min admite de 4 a 9 y de 7 a 9 y ambas bibliotecas ahora se duplican entre sí.
Yaroslav Havrylovych
Si está desarrollando una aplicación desde min api 19. ¿Necesita estos?
10

Primero, debemos entender, ¿Qué es la Biblioteca de soporte de Android ?

La Biblioteca de soporte de Android se lanzó originalmente en 2011, se puede decir que, como la Biblioteca de compatibilidad de Android, la Biblioteca de soporte de Android proporciona API más nuevas para versiones anteriores, pero la historia no es suficiente.

Esto puede ser un poco confuso de que las bibliotecas de soporte con números de versión más altos incluyen las características de las bibliotecas anteriores (podría pensar que v7-appcompat mejora e incluye todas las características de v4). En la mayoría de los casos, esto es incorrecto, pero las bibliotecas tienen un número de revisión. Por ejemplo, "AppCompat v21" en realidad se refiere a la biblioteca de soporte v7-appcompat, revisión 21.

La biblioteca de soporte de Android no es una biblioteca única, pero se puede dividir aproximadamente en dos grupos: bibliotecas de compatibilidad y componentes.

1-Las bibliotecas de compatibilidad se centran en las funciones de backport de las versiones de framework más recientes para que los dispositivos que ejecutan versiones anteriores puedan aprovechar las API más nuevas. Las principales bibliotecas de compatibilidad son v4 y v7-appcompat.

Biblioteca v4 : incluye muchas características y, como su nombre lo indica, admite volver a la API 4. Además, para admitir implementaciones para las clases principales como Fragment y Loader (que se introdujeron en el marco de la API 11), también encuentre varias clases ampliamente utilizadas que no estén presentes en el marco, como ViewPager y DrawerLayout.

v7-appcompat : la biblioteca v7-appcompat proporciona implementaciones de soporte para ActionBar (introducido en API 11) y Toolbar (introducido en API 21) para versiones de nuevo a API 7. Requiere la biblioteca v4 pero no la incluye. Por lo tanto, cualquier característica que dependa de v7-appcompat también depende de v4.

Bibliotecas de 2 componentes La Biblioteca de soporte de Android también proporciona bibliotecas de componentes más pequeñas y modulares que permiten a los desarrolladores agregar funciones que de otro modo no serían parte del marco estándar. Estas bibliotecas autónomas se pueden agregar o quitar fácilmente de un proyecto sin preocuparse por las dependencias. Hay varias bibliotecas de componentes valiosos a tener en cuenta:

v7-recyclerview : proporciona el componente RecyclerView, que muestra y anima de manera eficiente grandes cantidades de datos y está diseñado para reemplazar ListView

v7-cardview : proporciona el componente CardView, que permite el patrón de diseño de la interfaz de usuario de las tarjetas

v7-gridlayout : proporciona la clase GridLayout, que permite organizar los elementos de la IU en una cuadrícula rectangular. Etc ..

Otras bibliotecas La Biblioteca de soporte de Android también contiene algunas otras bibliotecas que se usan con menos frecuencia, pero que vale la pena mencionar:

v8: proporciona soporte para RenderScript (introducido en API 11) de nuevo a API 8

v13 : proporciona compatibilidad de compatibilidad adicional para el patrón de Fragment UI y agrupa la biblioteca v4

v17 : proporciona soporte para crear interfaces de usuario de TV

¿Cuándo debo usar la Biblioteca de soporte de Android?

Debe usar una de las bibliotecas de soporte cuando necesite características específicas del marco que sean más nuevas que la minSdkVersion de su aplicación o que no estén disponibles en el marco estándar.

y me refiero a este tutorial

Farhana
fuente
5

Esta respuesta es relevante para clientes de bibliotecas de soporte cuya versión es> = 26.0.0:

Precaución : a partir de la versión 26.0.0 de la biblioteca de soporte (julio de 2017), el nivel mínimo de API admitido en la mayoría de las bibliotecas de soporte ha aumentado a Android 4.0 (nivel de API 14) para la mayoría de los paquetes de biblioteca.

Por ejemplo, el paquete support-v4 y el paquete support-v7 admiten un nivel mínimo de API de 14, para versiones de la biblioteca de soporte de 26.0.0 y superior .

Para obtener más información, consulte Biblioteca de soporte - Soporte de versión y nombres de paquetes .

Eido95
fuente