46 votes

(Dis-) Avantage d'avoir plusieurs modules dans un projet Android Studio ?

Est-il avantageux d'avoir plusieurs modules dans un projet Android Studio plutôt qu'un seul grand module ? application -module ?

Je connais Modules Android en général et les avantages de la SOLIDE Je me concentre donc sur la prise en compte des éléments suivants performance de construction . Comme gradle peut faire des builds incrémentaux, et que si un seul module change, les autres modules n'ont pas besoin d'être traités ?

Cela est-il perceptible ou y a-t-il même une quantité considérable de frais généraux ?

0 votes

Si vous êtes familier avec Eclipse, vérifiez cette réponse. stackoverflow.com/a/18329892/1576416 et ceci stackoverflow.com/a/28660722/1576416

35voto

Anurag Singh Points 3217

Il est très avantageux de disposer de plusieurs modules plutôt que de créer un seul grand module d'application. Voici les points clés :

  1. Si vous trouvez que le temps de compilation est plus long, vous pouvez désactiver temporairement le module de Gradle sur lequel vous ne travaillez pas et le compiler plus rapidement.
  2. Un module nous aide également à diviser un projet en unités discrètes de fonctionnalité. Vous pouvez créer un module de données qui contient toutes les fonctions Java pures et qui peut être utilisé par plusieurs applications si vous êtes dans le même domaine. Par exemple, le domaine de la finance peut avoir deux applications, l'une pour visualiser les polices d'assurance pour les clients et l'autre pour un agent d'assurance afin de visualiser les mêmes données. Mais le module de données peut être partagé par toutes les applications et même emprunté au serveur ou à l'équipe API. Le module de données peut être testé individuellement sans aucune dépendance Android et toute personne connaissant Java peut écrire des cas de test.
  3. Chaque module peut être construit, testé et débogué indépendamment.
  4. Les modules supplémentaires sont souvent utiles pour créer des bibliothèques de code dans votre propre projet ou pour créer différents ensembles de code et de ressources pour différents types d'appareils, tels que les téléphones et les wearables, tout en conservant tous les fichiers dans le même projet et en partageant une partie du code.
  5. Le module de l'application Android et le module de la bibliothèque sont également différents.
  6. Vous pouvez conserver deux versions différentes du module en fonction des versions de l'API telles qu'elles figurent dans l'ASOP.

Pour en savoir plus, consultez les ressources destinées aux développeurs Android.

Comment la modularisation peut accélérer la création de votre application Android

Modularisation des applications et chargement paresseux des modules sur Instagram et au-delà

Modulariser les applications Android par Mauin

Enquête sur la modularisation des applications des développeurs Android

0 votes

Bien sûr, j'avais déjà jeté un coup d'œil au guide du développeur, mais je me concentrais davantage sur les performances de construction et non sur les avantages de la modularisation en général.

0 votes

Vidéo de l'intervention de Marvin Ramin "Modulariser les applications Android" (en anglais) skillsmatter.com/skillscasts/

17voto

Lord Flash Points 1127

Un article paru hier sur Medium répond exactement à ma question :

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

tl;dr :

Tout d'abord, et c'est le plus important, l'hypothèse était correcte, la modularisation du projet peut accélérer considérablement le processus de construction, mais pas pour toutes les configurations.

Deuxièmement, si le découpage est mal fait, le temps de construction sera considérablement allongé, car Gradle construit à la fois la version release et la version debug des modules de la bibliothèque.

Troisièmement, travailler de manière pilotée par les tests est beaucoup plus facile pour un projet comportant plusieurs modules, car la construction d'un petit module de bibliothèque est beaucoup plus rapide que celle de l'ensemble du projet.

Enfin, le fait de faire plusieurs choses en parallèle ralentit la construction. Avoir un matériel plus puissant est donc une bonne idée.

Vous trouverez ci-dessous les résultats de toutes les expériences décrites dans cet article.

Mise à jour

Présenté lors de la conférence Google I/O '17 : https://youtu.be/Hx_rwS1NTiI?t=23m17s

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X