Por lo que yo entiendo, las bibliotecas de soporte pueden funcionar como una alternativa de las API integradas, pero no se supone que lo sean, porque afectan directamente el tamaño de la aplicación.
Por ejemplo, una biblioteca de soporte es de 2MB, y para usar su funcionalidad, necesita todas las clases, recursos, etc. (de 2MB), ahora classes.dex
(archivo ejecutable Dalvik de todas las clases utilizadas en la aplicación) de mi la aplicación también incluye clases de biblioteca de soporte, y lo mismo para los recursos. Entonces, si la biblioteca de soporte no tiene el tamaño de mi aplicación de 1 MB, ahora con la biblioteca de soporte el tamaño es de 2 MB extra, lo que significa 3 MB en total. Supongamos que esta función de biblioteca de soporte es tan común que en un solo dispositivo, si tengo 10 aplicaciones, al menos 9 están usando esta misma biblioteca de soporte, entonces 9 * 2 = 18MB en mi dispositivo está siendo utilizado por misma biblioteca de soporte, que se repite en todas las aplicaciones, lo que es malo, porque por ahora 18 MB no es mucho, pero el espacio requerido puede aumentar, si tiene más aplicaciones usando esa biblioteca de soporte.
Por lo tanto, la mejor opción es tener esa biblioteca de soporte de 2MB ya en su sistema operativo para cualquier cantidad de aplicaciones, en lugar de tenerla para cada aplicación. Por lo tanto, las bibliotecas de soporte están destinadas a ser utilizadas cuando realmente desea algunas características eficientes en su aplicación para admitir versiones anteriores.
Otra pregunta surgen aquí:
por qué no se añade esta biblioteca de soporte al sistema operativo como su propia actualización, de modo que cada aplicación sin problemas de tamaño puede tener acceso a esa funcionalidad?
La respuesta es que podría haber muchos errores. Supongamos que algunos usuarios no tienen instalada esa actualización (biblioteca de soporte) ...
También existe la posibilidad de que, como una actualización, no funcione tan eficiente como se supone que sea, o puede causar problemas al integrarse con el Sistema operativo, como ya vimos, cada sistema operativo (Windows, Linux, Mac) viene con nuevas versiones, en lugar de simplemente dar actualizaciones de por vida para todas las funciones nuevas.
Si el desarrollador no necesita ninguna de las características que proporciona la biblioteca de soporte, entonces seguro que no la use. Sin embargo, en el gran esquema de cosas, 2MB realmente no es mucho, y preferiría una aplicación que funcione bien y compatible con versiones anteriores que una que haya sido despojada de sus facciones simplemente porque quien la desarrolló estaba preocupado de que el APK era demasiado grande Además, probablemente puedas usar Proguard para reducir/comprimir el tamaño del archivo APK de la aplicación. –
Tantas frases largas ... Realmente difícil de entender. – CDT
No estoy de acuerdo con su respuesta sobre un usuario que no tenga la biblioteca de soporte podría causar muchos errores. El archivo de manifiesto ya le permite limitar su aplicación solo para trabajar en un dispositivo con una determinada versión de OpenGL. Podrían haber hecho lo mismo para la Biblioteca de soporte, y hasta podrían extender la funcionalidad para permitir una dependencia dinámica en cualquier biblioteca. Así es como ya está hecho en la mayoría de los sistemas operativos basados en Linux. –