Cuándo utilizar la biblioteca de soporte

Estoy confundido con el propósito de la biblioteca de soporte de Android y cuando se necesita. Entiendo que la ventaja principal de usar la biblioteca de soporte es que Android implemente temas y características de interfaz de usuario por sí solo en versiones anteriores sin necesidad de que el desarrollador los defina explícitamente. Una de estas características clave de la interfaz de usuario es la barra de acción, que se introdujo para las tabletas en nido de abeja, a continuación, agregó a toda la plataforma en helado Sandwich.

Dicho esto, supongamos que quiero desarrollar una aplicación que se dirige a KitKat (la API más reciente en el momento de escribir), pero sólo quiero apoyar de nuevo a API 16, la primera versión de Jelly Bean.

Jelly Bean incluye la Barra de Acción, y hubo pocos cambios importantes en la interfaz de usuario entre 16 y 19. ¿Debería usar la biblioteca de soporte en este caso? ¿Qué beneficio proporciona si lo uso? Estoy buscando una respuesta que explique los beneficios de la biblioteca de soporte, y un ejemplo de caso de uso.

La Biblioteca de Soporte se utiliza generalmente cuando se desea soportar fácilmente una gama más amplia de versiones de SO con menos fuente de versión específica – con ella se pueden utilizar características introducidas en la versión superior del SO en plataformas anteriores sin tener que preocuparse y comprobar si esta plataforma tiene Que la característica y hacer algo en caso de que no.

Hay varias versiones de la biblioteca de soporte – v4, v7, v8 y v13. Todos ellos añaden funcionalidad que se introduce en las versiones superiores de la API, a continuación, la versión de la biblioteca. Por ejemplo v4 puede agregar funcionalidad de API 5, 6, 7, 8 …, mientras que v7 – sólo de API 8 y superior.

Otra característica importante de las bibliotecas es que se actualizan periódicamente, por lo que puede optar por depender de la biblioteca de soporte para alguna característica en lugar de la versión del sistema operativo actual instalada (lo que puede introducir errores en esa característica).

Por supuesto que tienen su lado negativo también – la biblioteca de soporte es una dependencia adicional para su proyecto.

Aquí está su respuesta: ¡ Siempre !

El siguiente razonamiento se copia directamente del libro de Dev Android de Big Nerd Ranch . Énfasis mío:

Este libro utiliza la implementación de la biblioteca de soporte de fragmentos sobre la implementación incorporada en el sistema operativo Android, lo que puede parecer una opción inusual. Después de todo, la implementación de fragmentos de biblioteca de soporte se creó inicialmente para que los desarrolladores pudieran usar fragmentos en versiones antiguas de Android que no admiten la API. Hoy en día, la mayoría de los desarrolladores pueden trabajar exclusivamente con versiones de Android que incluyen soporte para fragmentos.

Todavía preferimos fragmentos de soporte. ¿Por qué? Los fragmentos de soporte son superiores porque puede actualizar la versión de la biblioteca de soporte en su aplicación y enviar una nueva versión de su aplicación en cualquier momento. Las nuevas versiones de la biblioteca de soporte salen varias veces al año. Cuando se agrega una nueva función a la API de fragmentos, esa característica también se agrega a la API de fragmentos de biblioteca de soporte junto con las correcciones de errores disponibles. Para usar esta nueva bondad, sólo tiene que actualizar la versión de la biblioteca de soporte en su aplicación.

Como ejemplo, el soporte oficial para el anidamiento de fragmentos (alojando un fragmento en un fragmento) se agregó en Android 4.2. Si está utilizando la implementación de fragmentos de Android OS y es compatible con Android 4.0 y versiones posteriores, no podrá utilizar esta API en todos los dispositivos compatibles con su aplicación. Si está utilizando la biblioteca de soporte, puede actualizar la versión de la biblioteca en su aplicación y anidar fragmentos hasta que se quede sin memoria en el dispositivo.

No hay desventajas significativas en el uso de los fragmentos de la biblioteca de soporte. La implementación de fragmentos es casi idéntica en la biblioteca de soporte como lo es en el sistema operativo. El único inconveniente real es que tiene que incluir la biblioteca de soporte en su proyecto y tiene un tamaño diferente de cero. Sin embargo, actualmente está bajo un megabyte – y es probable que utilice la biblioteca de soporte para algunas de sus otras características también.

Tomamos un enfoque práctico en este libro y en nuestro propio desarrollo de aplicaciones. La biblioteca de soporte es el rey .

Así que … Siempre habrá una biblioteca de soporte porque casi siempre tendrá que soportar dispositivos antiguos por una variedad de razones:

Es posible que los propietarios de dispositivos no puedan actualizar a la última versión porque:

  • Los proveedores de servicios y los fabricantes no se molestan en actualizar un tipo de teléfono que no sea insignia – cuesta dinero para la prueba de regresión de su bloatware encima de una nueva versión de Android.
  • Algunos propietarios de dispositivos (afortunadamente no todos) se preocupan muy poco por la versión de Android en su teléfono. Situación totalmente diferente con la aplicación de Tinder sin embargo.
  • Es posible que los propietarios de dispositivos no dispongan de los recursos necesarios para actualizar a un dispositivo más reciente / más reciente. Los desarrolladores de aplicaciones en los países en desarrollo probablemente se enfrentan a este problema. Las estadísticas de Versiones de plataformas de Google no son específicas de la región, ¡aunque probablemente deberían serlo!

De todas formas, aquí está la idea: las bibliotecas de soporte tienen la misma funcionalidad que las API de OS / framework y tienen un tamaño compacto, ya que tienen que incluirse en su APK, no aumentan mucho el tamaño. Por lo tanto, hemos establecido que no hay ningún inconveniente en usarlos / incluirlos. Ahora, los upsides son enormes – mire el ejemplo del fragmento arriba.

Hay una versión diferente de la biblioteca de soporte porque cada versión contiene nuevas características no disponibles en las anteriores.

En esta página puede ver cada versión con las modificaciones incluidas. http://developer.android.com/tools/support-library/index.html

El propósito de esta biblioteca de soporte es darle acceso a las funciones que la versión que está apuntando no incluye. ¿Hay algo en la API más reciente que desea utilizar, pero que la versión que está dirigiendo no incluye? Si es así, entonces tiene que incluir la última versión de la biblioteca de soporte (consulte antes en la página anterior que la biblioteca de soporte incluye lo que necesita).

  • FragmentPagerAdapter no se puede resolver con un tipo
  • Switch vs. SwitchCompat
  • Diálogo de soporte personalizado El texto del fragmento es el color incorrecto
  • Android, Logcat da error acerca de la clase SearchView
  • No se puede resolver el símbolo al cambiar la versión de la biblioteca de soporte
  • Android NestedScrollView fillViewport se extiende incorrectamente
  • ViewPager.setOffscreenPageLimit (0) no funciona como se esperaba
  • MenuItemCompat.setOnActionExpandListener no hace nada
  • "No se pueden reciclar las vistas desechadas o adjuntas", ya que soporte lib 25.0.0
  • Android SupportMapFragment Exception Error
  • Android N se bloquea en TextAppearanceSpan
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.