web-dev-qa-db-fra.com

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

Est-il avantageux d'avoir plusieurs modules dans un Android Studio Project plutôt que d'avoir un seul grand app - module?

Je connais Modules Android en général et les avantages de SOLIDE donc mon attention est particulièrement envisagée construire des performances . Comme gradle peut faire des builds incrémentiels, et si un seul module change, ces autres modules n'ont pas besoin d'être traités?

Est-ce visible ou y a-t-il même une quantité considérable de frais généraux?

39
Tobias

Il est très avantageux d'avoir 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 prend plus de temps, vous pouvez désactiver le module de gradle sur lequel vous ne travaillez pas temporairement et le compiler plus rapidement.
  2. Un module nous aide également à diviser le projet en unités de fonctionnalité discrètes. Vous pouvez créer un module de données qui contient tous les Java beans purs et peut être utilisé par plusieurs applications si vous êtes dans le même domaine. Par exemple, le domaine Finance peut avoir deux applications, une pour afficher les politiques pour le client et d'autres peuvent être destinés à un agent d'assurance pour afficher les mêmes données. Mais le module de données peut être partagé entre toutes les applications et même le module de données peut être emprunté au serveur ou à l'équipe API. Le module de données peut être testé individuellement sans aucun Android dépendances et tout le monde connaît Java peut écrire des cas de test.
  3. Chaque module peut être construit, testé et débogué indépendamment.
  4. Des modules supplémentaires sont souvent utiles lors de la création de bibliothèques de code dans votre propre projet ou lorsque vous souhaitez créer différents ensembles de code et de ressources pour différents types d'appareils, tels que les téléphones et les appareils portables, mais conservez tous les fichiers dans le même projet et partagez du code .
  5. En outre, Android et le module de bibliothèque sont différents.
  6. Vous pouvez conserver deux versions différentes du module en fonction des versions d'API à partir d'ASOP.

Vous pouvez en savoir plus sur Android

Comment la modularisation peut accélérer votre Android

Modularisation d'application et chargement paresseux de modules sur Instagram et au-delà

Modularisation Android Applications par Mauin

Enquête sur la façon dont Android modulaient leurs applications

31
Anurag Singh

Hier, il y avait un article sur Medium, qui 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 le plus important, l'hypothèse était correcte, le projet de modularisation peut accélérer considérablement le processus de construction, mais pas pour toutes les configurations.

Deuxièmement, si le fractionnement est effectué de manière incorrecte, le temps de construction sera considérablement augmenté, car Gradle crée les deux, publie et débogue la version des modules de bibliothèque.

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

Quatrièmement, faire beaucoup de choses en parallèle ralentit la construction. Donc, avoir un matériel plus puissant est une bonne idée.

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

Mise à jour

Adressé à Google I/O '17: https://youtu.be/Hx_rwS1NTiI?t=23m17s

15
Tobias