当前位置: 代码迷 >> Android >> 【Android Studio探索之路系列】之8:Gradle项目构建系统(二):Gradle for Android脚本语法
  详细解决方案

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

热度:177   发布时间:2016-04-27 23:52:21.0
【Android Studio探索之路系列】之八:Gradle项目构建系统(二):Gradle for Android脚本语法

作者:郭孝星
微博:郭孝星的新浪微博
邮箱:[email protected]
博客: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 2013distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=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程序的混淆文件,该文件已经包含了基本的混淆声明,免去了我们很多事,这个文件的目录在

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

  相关解决方案