studio reales proyectos libro introducción instalacion incluye herramientas fuente español código crear con basico avanzado aplicaciones android performance android-studio android-gradle android-module

reales - (Dis) ventaja de tener múltiples módulos en un proyecto de Android Studio?



libro de android studio en español pdf (2)

¿Es ventajoso tener múltiples módulos en un Android Studio Project sobre tener solo una sola gran aplicación -módulo?

Conozco los módulos de Android en general y las ventajas de SOLID así que mi enfoque es especialmente considerar el rendimiento de construcción . Como gradle puede hacer compilaciones incrementales, y si solo un módulo cambia, esos otros módulos no necesitan ser procesados?

¿Es esto notable o hay incluso una cantidad considerable de gastos generales?


Ayer hubo un artículo sobre Medium, que responde exactamente a mi pregunta:

https://medium.com/@nikita.kozlov/how-modularisation-affects-build-time-of-an-android-application-43a984ce9968#.at4n9imbe

tl; dr:

Primero y más importante, la hipótesis era correcta, el proyecto de modularización puede acelerar significativamente el proceso de compilación, pero no para todas las configuraciones.

En segundo lugar, si la división se realiza de forma incorrecta, el tiempo de construcción aumentará drásticamente, ya que Gradle compila la versión de versión y depuración de los módulos de la biblioteca.

En tercer lugar, trabajar en el modo de prueba es mucho más fácil para un proyecto con múltiples módulos, porque construir un pequeño módulo de biblioteca es mucho más rápido que todo el proyecto.

En cuarto lugar, hacer muchas cosas en paralelo ralentiza la construcción. Entonces, tener un hardware más potente es una buena idea.

A continuación puede encontrar los resultados de todos los experimentos descritos en este artículo

Actualizar

Dirigido a Google I / O ''17: https://youtu.be/Hx_rwS1NTiI?t=23m17s


Es una gran ventaja tener varios módulos en lugar de crear un único módulo de aplicación grande. Los siguientes son los puntos clave:

  1. Si encuentra que el tiempo de compilación demora más, puede desactivar el módulo de gradle en el que no está trabajando y compilarlo más rápido.
  2. Un módulo nos ayuda a dividir el proyecto en unidades discretas de funcionalidad también. Puede crear un módulo de datos que contenga todos los beans Java puros y puede ser utilizado por varias aplicaciones si se encuentra en el mismo dominio. P.ej. El dominio de finanzas puede tener dos aplicaciones, una para ver las políticas para el cliente y otra para un agente de seguros para ver los mismos datos. Pero el módulo de datos puede compartirse en todas las aplicaciones e incluso el módulo de datos puede tomarse prestado del servidor o del equipo de api. El módulo de datos se puede probar individualmente sin ninguna dependencia de Android y cualquiera sabe acerca de Java puede escribir casos de prueba.
  3. Cada módulo puede construirse, probarse y depurarse de forma independiente.
  4. Los módulos adicionales suelen ser útiles al crear bibliotecas de códigos dentro de su propio proyecto o cuando desee crear diferentes conjuntos de códigos y recursos para diferentes tipos de dispositivos, como teléfonos y dispositivos portátiles, pero mantenga todos los archivos dentro del mismo proyecto y comparta algún código .
  5. Además, el módulo de aplicación de Android y el módulo de biblioteca son diferentes.
  6. Puede mantener dos versiones diferentes de módulo basadas en las versiones de API a partir de ASOP.

Puedes echar un vistazo a más sobre el recurso desarrollador de Android

Cómo la modularización puede acelerar el tiempo de compilación de su aplicación Android

La modularización de la aplicación y la carga lenta del módulo en Instagram y más allá

Modular aplicaciones de Android de Mauin