您的位置:首页 > 移动开发 > Android开发

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

2015-07-22 09:52 531 查看
作者:郭孝星

微博:郭孝星的新浪微博

邮箱:allenwells@163.com

博客:http://blog.csdn.net/allenwells

github:https://github.com/AllenWell

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

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



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

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程序的混淆文件,该文件已经包含了基本的混淆声明,免去了我们很多事,这个文件的目录在
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: