Android gradle

Android中Gradle介绍

2018-08-20  本文已影响22人  Joving

  Android Studio默认的构建项目工具,基于Groovy的领域特定语言来声明项目配置,和基于XML的Ant和Maven相比更简单。

外层build.gradle

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

  两处repositories闭包中都有jcenter()和google()这两行表示我们可以从jcenter和google中轻松引用任何开源项目。
  dependencies闭包中声明的是Grandle引用com.android.tools.build:gradle:3.1.4版本。

内层build.gradle

apply plugin: 'com.android.application'
android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.administrator.testhelloworld"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
    implementation 'com.android.support.constraint:constraint-layout:1.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

  apply表示这是一个应用程序模块,一般有两个值:com.android.application(应用程序模块,可以直接运行)和com.android.library(库模块,需要一来在别的应用程序模块中才能运行)。
  android闭包,指定目标版本,指定项目构建工具的版本。
  android闭包中defaultConfig闭包,指定包名,最小支持版本,目标版本,指定项目版本号,指定项目的版本名。
  android闭包中buildType闭包,用于指定生成安装文件的相关配置,有两个子包:debug和release。debug可以忽略不记。release中minifyEnabled是否对代码进行混淆,proguardFiles指定混淆文件,第一个proguard-android.txt系统目录下的,proguard-rules.pro项目目录下的配置特定的混淆规则。
  dependencies闭包,指定当前项目所有依赖关系。通常有三种依赖:本地依赖、库依赖和远程依赖。implementation fileTree将libs目录下所有.jar后缀的文件都添加进项目构建路径; implementation 'com.android.support.constraint:constraint-layout:1.1.1'远程依赖;implementation project(':helper')库依赖

上一篇下一篇

猜你喜欢

热点阅读