1.5 详解build.gradle

目录结构
这里写图片描述

外层
这里写图片描述

内层
这里写图片描述

AndroidStudio是通过Gradle来构建项目的。
我们可以看到上图中的项目中有两个build.gradle,一个在内层,一个在外层,我们分析一下
先看最外层的build.gradle,这些代码都是自动生成的

buildscript {

    repositories {
        google()
        jcenter() //该闭包处声明了jcnter()这行配置,这个jcenter其实是个代码托管仓库
                  //很多开源项目会把代码托管到jcenter上,声明了这个配置后,就可以引用jcenter上的开源项目了
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        //dependencies闭包中使用classpath声明了一个Gradle插件,因为java,C++很多项目都用Gradle来构建
        //如果我们想使用它来构建安卓项目,就需要声明这个插件,最后面是这个插件的版本号
    }
}

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

task clean(type: Delete) {
    delete rootProject.buildDir
}

接着看内层的build.gradle文件

//第一行这里一般有两种值可以选择,第一种是apply plugin: 'com.android.application'表示一个应用程序模块
//第二种是apply plugin: 'com.android.library'表示这是一个库模块
//程序模块与库模块的最大区别在于,应用程序模块可以直接运行,而库模块是需要依附于别的应用程序来运行
apply plugin: 'com.android.application'

//接下来是一个大的android闭包,在这个闭包中我们可以配置项目构建的各种属性
android {
    compileSdkVersion 26 //指定项目的编译版本
    buildToolVersion "24.0.2" //指定项目构建工具的版本
    //嵌套了一个defaultConfig闭包,这里可以对项目进行更多的细节配置
    defaultConfig {
        applicationId "com.ryshine.toast" //指定项目的包名,后期可以在此处修改包名
        minSdkVersion 21 //指定项目最低兼容的安卓系统版本
        targetSdkVersion 26 //此处指定值表示已经在该版本做过了充分测试
        //下面两个属性在生成安装文件时非常重要
        versionCode 1 //指定项目的版本号
        versionName "1.0" //指定项目的版本名
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    //buildType闭包,这里用于指定生成安装文件的相关配置,通常有两个子闭包,debug和release
    //debug闭包用于指定生成测试板安装文件的配置,可以忽略不写
    //release闭包用于指定生成正式版安装文件的配置
    buildTypes {
        release {
            minifyEnabled false //指定是否对代码进行混淆,true 混淆   false 不混淆
            //proguardFiles用于指定混淆时使用的规则文件
            //proguard-android.txt在AndroidSdk目录下,里面是所有项目通用的混淆规则
            //proguard-rules.pro 是在当前根目录下的,里面可以编写当前项目特有的混淆规则
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

//dependencies闭包,可以指定当前项目的所有依赖关系
//通常AndroidStudio项目一共有三种依赖方式:本地依赖、库依赖、远程依赖
//本地依赖可以对本地Jar包或者目录添加依赖关系
//库依赖可以对项目中的库模块添加依赖关系
//远程依赖可以对jcenter库上的开源项目添加依赖关系
dependencies {
    //本地依赖,表示将libs目录中所有.jar后缀的文件都添加到项目的构建路径中
    implementation fileTree(dir: 'libs', include: ['*.jar']) 
    //标准的远程依赖格式,构建项目时Gradle首先检查是否有改缓存,如果没有则联网下载,然后添加到项目构建路径
    //com.android.support是域名部分,用于和其他公司的库区分
    //appcpmpat-v7是组名称,用于区分同一个公司中的不同库
    //26.1.0是版本号
    implementation 'com.android.support:appcompat-v7:26.1.0'
    //声明测试用例库,暂时用不到
    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'
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值