Después de haber importado un proyecto de Eclipse en Android Studio, veo dos build.gradlearchivos:
1 - <PROJECT_ROOT>\build.gradle
2 - <PROJECT_ROOT>\app\build.gradle
La primera versión es más corta, la segunda versión contiene definiciones para compileSdkVersion, etc.
¿Cuál es el propósito de tener dos archivos separados? ¿Hay tareas de construcción independientes?

Respuestas:
<PROJECT_ROOT>\app\build.gradlees específico para el módulo de la aplicación .<PROJECT_ROOT>\build.gradlees un "archivo de compilación de nivel superior" donde puede agregar opciones de configuración comunes a todos los subproyectos / módulos.Si usa otro módulo en su proyecto, como biblioteca local, tendría otro
build.gradlearchivo:<PROJECT_ROOT>\module\build.gradlePor ejemplo, en su archivo de nivel superior puede especificar estas propiedades comunes:
En tus
app\build.gradlefuente
build.gradleobligatoria la presencia del archivo para activar una compilación? Además, ¿el archivo de compilación de nivel superior llama a archivos de subnivel? (Aunque no hay evidencia de eso.)rootProject.ext.compileSdkVersionconstrucción es muy informativa.De la documentación oficial:
Archivo de construcción del proyecto
<PROJECT_ROOT>\build.gradleo el archivo de compilación del proyecto es para todo el proyecto, por lo que se utilizará para configuraciones de proyecto globales. Un archivo de compilación de proyecto típico contiene lo siguiente:Archivo de compilación del módulo
<PROJECT_ROOT>\app\build.gradleo el archivo de compilación del módulo es para un módulo específico, por lo que se utilizará para configuraciones de nivel de módulo específicas. Un archivo de compilación de módulo contiene lo siguiente:puedes leer los documentos oficiales aquí:
Configuración de construcción de proyectos y módulos
fuente