美文网首页
Android开发项目中的build.gradle文件介绍

Android开发项目中的build.gradle文件介绍

作者: 琦琦出去玩了 | 来源:发表于2017-10-12 09:33 被阅读32次

    Android开发项目中的build.gradle文件介绍

    在开发android项目中,我们通常会遇到两个build.gradle文件。如下图所示:


    DE125352-71D5-4425-A643-F6F0F19B676F.png

    一个用于整个项目,一个用于app应用模块,对应于整个项目的内容很少,其内容如下:

    B98C97F7-3362-4079-90B6-6A68EC8DA195.png

    下面是具体的解释:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    // Gradle中可以使用“//”或“/**/”来添加注释,与Java类似。
    // 根目录下的build.gradle用于添加子工程或模块共用的配置项。
    
    // "buildscript"的类型为script block,而且是最上层的script block,用于配置Gradle的Project实例。其API文档为https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project:buildscript(groovy.lang.Closure)
    // 其余的根script block有"allprojects", "dependencies", "configurations"等,更多的可见https://docs.gradle.org/current/dsl/的“Build script structure”一节。
    // Script Block是一种method的调用,传入的参数为configuration closure。执行后会对Project的属性进行配置。
    // 此处的"buildscript"用于配置Project的build script的classpath。
    buildscript {
        // 如果需要的话,从https://jcenter.bintray.com/下载code reposities。
        repositories {
            jcenter()
        }
        // 定义classpath,gradle会从“repositories”中下载对应版本的Gradle。如果使用gradle wrapper的话,感觉这个配置会被忽略。Wrapper会自己去下载所使用的gradle版本。
        dependencies {
            classpath 'com.android.tools.build:gradle:2.1.3'
    
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    
    // 该配置会被应用到所有的子工程。
    allprojects {
        repositories {
            jcenter()
        }
    }
    
    // 运行gradle clean时,执行此处定义的task。
    // 该任务继承自Delete,删除根目录中的build目录。
    // 相当于执行Delete.delete(rootProject.buildDir)。
    // gradle使用groovy语言,调用method时可以不用加()。
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    

    其次,我们要了解和经常编辑的是app/build.gradle文件。其内容如下:

    73F07CF6-5961-41F3-8D9F-3F0A66F1A645.png

    下面是具体的解释:

    // 声明是Android程序,
    //com.android.application 表示这是一个应用程序模块
    //com.android.library 标识这是一个库模块
    //而这区别:前者可以直接运行,后着是依附别的应用程序运行
    apply plugin: 'com.android.application'
    
    android {
       
        compileSdkVersion 26             // 编译SDK的版本   
        buildToolsVersion "26.0.2"      // 编译build tools的版本
        defaultConfig {                         //默认配置
            applicationId "com.example.zhangqi.myapplication"      //应用的包名
            minSdkVersion 15            //支持的最低版本
            targetSdkVersion 26       //支持的目标版本
            versionCode 1                  //版本号
            versionName "1.0"          //版本名
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {                            //build类型
            release {                              //发布
                minifyEnabled false       //混淆开启
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    //指定混淆规则文件
            }
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])。 //编译lib目录下的.jar文件
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        compile 'com.android.support:appcompat-v7:26.+'
        compile 'com.android.support.constraint:constraint-layout:1.0.2'
    
        compile 'com.squareup.retrofit2:retrofit:2.1.0'//retrofit
        compile 'com.google.code.gson:gson:2.6.2'//Gson 库
        //下面两个是RxJava 和RxAndroid
        compile 'io.reactivex:rxjava:1.1.0'
        compile 'io.reactivex:rxandroid:1.1.0'
        compile 'com.squareup.retrofit2:converter-gson:2.1.0'//转换器,请求结果转换成Model
        compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'//配合Rxjava 使用
        testCompile 'junit:junit:4.12'
    }
    
    

    相关文章

      网友评论

          本文标题:Android开发项目中的build.gradle文件介绍

          本文链接:https://www.haomeiwen.com/subject/otknyxtx.html