construir.gradle in the project vs. build.Grale in the app

Comecei um projecto no Android Studio, com o Intelij.

o projecto inclui dois ficheiros chamados build.gradle. Um está sob a pasta app, e um está sob a pasta principal que é o nome do meu projecto, say MyProject.

Porquê a necessidade de dois? Qual é a diferença entre os dois?

Author: Gabriele Mariotti, 2014-09-17

1 answers

O projecto Android Studio consiste em módulos, bibliotecas, ficheiros manifest e ficheiros Gradle build.

Cada projecto contém um ficheiro de compilação de nível superior. Este ficheiro chama-se build.gradle e pode ser encontrado na pasta de topo.

Este ficheiro contém normalmente uma configuração comum para todos os módulos, funções comuns..

Exemplo:

  //gradle-plugin for android
  buildscript {
    repositories {
        mavenCentral()  //or jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.2'        
    }
  }

  // common variables
  ext {
     compileSdkVersion = 19
     buildToolsVersion = "20.0.0"
  }

  // a custom function
  def isReleaseBuild() {
     return version.contains("SNAPSHOT") == false
  }

  //common config for all projects
  allprojects {
     version = VERSION_NAME

     repositories {
       mavenCentral()
     }
  }

Todos os módulos têm um ficheiro build.gradle específico . Este ficheiro contém todas as informações sobre Este módulo (porque um projecto pode conter mais módulos), como configuração,compilar tyoes, informação para assinar a sua apk, dependências....

Exemplo:

apply plugin: 'com.android.application'


android {
    //These lines use the constants declared in top file
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
        versionName project.VERSION_NAME  //it uses a property declared in gradle.properties
        versionCode Integer.parseInt(project.VERSION_CODE) 
    }

    // Info about signing
    signingConfigs {
        release
    }

    // Info about your build types
    buildTypes {
        if (isReleaseBuild()) {
            release {
                signingConfig signingConfigs.release
            }
        }

        debug {
            applicationIdSuffix ".debug"
            versionNameSuffix "-debug"
        }
    }

    // lint configuration
    lintOptions {
        abortOnError false
    }
}

//Declare your dependencies  
dependencies {
    //Local library
    compile project(':Mylibrary')
    // Support Libraries
    compile 'com.android.support:support-v4:20.0.0'
    // Picasso
    compile 'com.squareup.picasso:picasso:2.3.4'

}

Pode encontrar mais informações aqui: http://developer.android.com/sdk/installing/studio-build.html

 7
Author: Gabriele Mariotti, 2014-09-17 07:43:21