Android Studio Gradle 之基础配置与介绍

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具,Android Studio IDE使用的构建项目工具就是Gradle

Gradle是比较先进的构建工具,允许通过插件自定义构建逻辑,使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。

通过Android Studio创建一个项目,默认会有两个build.gradle文件和一个settings.gradle,一个位于app目录下,两个位于项目的根目录下

位于项目的根目录下,它描述了这个项目的整体构建基础
位于app目录下,它描述这个app的构建基础,也可以是一个Module

最基本的Android项目中,它的settings.gradle内容如下:
include ‘:app’
该文件中就仅仅只包含了一句话,在你的项目中如果有多个 Model 存在的时候,就可以选择包含哪些进行编译。

build.gradle内容如下:

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

repositories 配置的是依赖管理的服务器。默认是 jcenter()
dependencies 上面是指定依赖管理的服务器,这个就是具体依赖什么库。

app目录下的build.gradle内容如下:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.example.think.testapplication"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.1'
    compile 'com.android.support:design:23.2.1'
}

apply plugin: ‘com.android.application’
表示的是添加插件,默认为 com.android.application 程序,也就是应用程序

dependencies:
这个也就是所谓的依赖了,不光可以进行远程依赖,也可以本地依赖

compile fileTree(dir: ‘libs’, include: [‘*.jar’])
这句话也就是说编译时依赖 libs 文件夹下的所有 jar 文件。

compile ‘com.android.support:appcompat-v7:23.2.1’
依赖一个远程的库

compileSdkVersion 23
buildToolsVersion “23.0.3”
这两个指定的是编译SDK以及编辑工具版本

buildTypes
在这里进行配置的是你的编译配置,可以看见这里有一个 release ,当然也有 debug 部分,两个部分配置其实都是一样的。

在这里主要进行的配置是是否进行代码混淆,所以有一个代码混淆的开关,以及代码混淆的具体文件,文件有两种,哪一种都可以。

可以这里通过定义相关值来达到release 版本与debug 版本的差异性

defaultConfig {
    applicationId "com.example.think.testapplication"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}

applicationId 应用ID,库类型的 Module 无此配置项
minSdkVersion 定义的是应用的最小的SDK版本
targetSdkVersion 定义的是应用的目标SDK版本
versionCode 定义的是应用的版本号
versionName 定义的是应用的版本名称

这些定义项经过编译最后生成一个叫做BuildConfig的最终类,可以在java代码中直接调用,路径在app\build\generated\source\buildConfig\debug\com\example\think\testapplication下

/**
 * Automatically generated file. DO NOT MODIFY
 */
package com.example.think.testapplication;
public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "com.example.think.testapplication";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值