【Android Studio探索之路系列】之8:Gradle项目构建系统(二):Gradle for Android脚本语法

【Android Studio探索之路系列】之八:Gradle项目构建系统(二):Gradle for Android脚本语法

作者:郭孝星
微博:郭孝星的新浪微博
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell

在介绍Gradle for Android脚本语法语法之前,我们先来了解一下Android Studio工程中几个常见的Gradle脚本文件的相关功能,这样我们会有个大致的印象,而后我们再详细的去讨论相关的语法表达。

Android Studio中,Gradle由一个*配置文件和其他模块配置文件构成,如下图所示:

【Android Studio探索之路系列】之8:Gradle项目构建系统(二):Gradle for Android脚本语法

下面我们依次来看一下这几个文件。

Gradle*配置文件

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        /* 存储库jcenter,也可以配置moven */
        jcenter()
    }
    dependencies {
        /* 依赖的Gradle版本 */
        classpath 'com.android.tools.build:gradle:1.2.3'

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

allprojects {
    repositories {
        /* 所有项目的存储库 */
        jcenter()
    }
}

该文件的内容主要包含了两个方面:一个是声明仓库的源,这里可以看到是指明的jcenter(), 之前版本则是mavenCentral(), jcenter可以理解成是一个新的*远程仓库,兼容maven中心仓库,而且性能更优。另一个是声明了android gradle plugin的版本,android studio 1.0正式版必须要求支持gradle plugin 1.0的版本。

全局项目配置文件

settings.gradle

include ':app'

这个文件是全局项目配置文件,里面主要声明需要加入Gradle的Module。上述文件只加入了app模块,如果有多余的模块,按照上述格式继续添加即可。

Gradle Wrapper属性文件

gradle-wrapper.properties

#Wed Apr 10 15:27:10 PDT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip

这是位于wrapper文件夹下的一个文件,该文件声明了Gradle的目录与下载路径以及当期项目使用的Gradle的版本。这些默认的路径一般是不会更改的,这个文件指定的Gradle的版本不对也是导包不成功的常见原因。

Gradle模块配置文件

build.gradle

apply plugin: 'com.android.application'//声明是Android程序

android {
    compileSdkVersion 22//编译SDK的版本
    buildToolsVersion "22.0.1"//Build Tools的版本

    defaultConfig {//默认配置
        applicationId "com.allenwells.myapplication"//应用包名
        minSdkVersion 15//最小API版本
        targetSdkVersion 22//编译API版本
        versionCode 1//版本号
        versionName "1.0"//版本名称
    }
    buildTypes {//构建类型
        release {//正式版配置
            minifyEnabled false//是否进行混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }//混淆配置文件的位置
    }

    //移除lint检查的error
    lintOptions {
      abortOnError false
    }

    sourceSets {
        main {
            jniLibs.srcDirs =['libs']
        }
    }
}

dependencies {
    //依赖配置,编译libs目录下的所有JAR包
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.1'
    //编译extras目录下的ShimmerAndroid模块
    compile project(':extras:ShimmerAndroid')
}

关于以上文件的几点说明:

  • apply plugin是最新gradle版本的写法,以前的写法是apply plugin: ‘android’。
  • buildToolsVersion这个需要你本地安装该版本才行,很多人导入新的第三方库,失败的原因之一是build version的版本不对,这个可以手动更改成你本地已有的版本或者打开SDK Manager去下载对应版本。
  • applicationId代表应用的包名,也是最新的写法。
  • android 5.0开始默认安装jdk1.7才能编译。
  • minifyEnabled也是最新的语法,很早之前是runProguard。
  • proguardFiles这部分有两段,前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,免去了我们很多事,这个文件的目录在

版权声明:本文为博主原创文章,未经博主允许不得转载。