Síntomas comunes

Los problemas más típicos son: sync lenta, configuración eterna, tareas que invalidan cache, compilación incremental que deja de ser incremental, módulos demasiado acoplados o builds que rompen distinto en CI y local.

Flags y herramientas útiles

./gradlew assembleDebug --scan
./gradlew assembleDebug --profile
./gradlew :app:dependencies
./gradlew :app:tasks

Los build scans y profiles te dejan ver dónde se va el tiempo. No reemplazan el criterio técnico, pero ayudan mucho a encontrar hotspots.

Punto claveAntes de optimizar, medí. Sin una línea de base terminás cambiando cosas por intuición y no sabés si realmente mejoraron el build.

Causas frecuentes

  • Demasiado trabajo en fase de configuración.
  • Uso excesivo de api entre módulos.
  • Procesadores de anotaciones lentos o mal distribuidos.
  • Variantes innecesarias.
  • Dependencias gigantes en módulos muy compartidos.
  • Tareas custom no cacheables.

Buenas prácticas de mantenimiento

  • Actualizar Gradle y AGP con criterio, no cada dos años.
  • Centralizar versiones.
  • Reducir duplicación.
  • Medir tiempos de CI.
  • Evitar magia innecesaria en scripts Gradle.
# gradle.properties
org.gradle.configuration-cache=true
org.gradle.parallel=true
org.gradle.caching=true
kotlin.incremental=true

AtenciónNo todas las flags mágicas mejoran todos los proyectos. Algunas requieren compatibilidad real de plugins y tasks. Activarlas sin entender puede mover el problema en vez de resolverlo.

Cierre

Con esto ya tenés una base sólida para entender Gradle en Android sin misticismo. La clave no es memorizar cada DSL sino construir el modelo mental correcto: módulos, plugins, dependencias, variantes y costo del build.