Android Studio之Gradle文件解析

本文转载自stormzhang的博客

什么是Gradle?Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。Gradle 基本概念下面就以我的开源项目 9GAG 来详细讲解下和Gradle相关的知识, 和Gradle相关的几个文件一般有如下几个:

红色标记部分从上到下咱们来一步步分析:

1. 9GAG/app/build.gradle这个文件是app文件夹下这个Module的gradle配置文件,也可以算是整个项目最主要的gradle配置文件,我们来看下这个文件的内容:// 声明是Android程序apply plugin: 'com.android.application'android {// 编译SDK的版本compileSdkVersion 21// build tools的版本buildToolsVersion "21.1.1"defaultConfig {// 应用的包名applicationId "me.storm.ninegag"minSdkVersion 14targetSdkVersion 21versionCode 1versionName "1.0.0"}// java版本compileOptions {sourceCompatibility JavaVersion.VERSION_1_7targetCompatibility JavaVersion.VERSION_1_7}buildTypes {debug {// debug模式}release {// 是否进行混淆minifyEnabled false// 混淆文件的位置proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'}}// 移除lint检查的errorlintOptions {abortOnError false}}dependencies {// 编译libs目录下的所有jar包compile fileTree(dir: 'libs', include: ['*.jar'])compile 'com.android.support:support-v4:21.0.2'compile 'com.etsy.android.grid:library:1.0.5'compile 'com.alexvasilkov:foldable-layout:1.0.1'// 编译extras目录下的ShimmerAndroid模块compile project(':extras:ShimmerAndroid')}这里需要说明几点:成你本地已有的版本或者打开 SDK Manager 去下载对应版本。proguardFiles这部分有两段,前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,免去了我们很多事,这个文件的目录在 **/tools/proguard/proguard-android.txt** , 后一部分是我们项目里的自定义的混淆文件,目录就在 **app/proguard-rules.txt** , 如果你用Studio 1.0创建的新项目默认生成的文件名是 **proguard-rules.pro** , 这个名字没关系,在这个文件里你可以声明一些第三方依赖的一些混淆规则,由于是开源项目,9GAG里并未进行混淆,具体混淆的语法也不是本篇博客讨论的范围。最终混淆的结果是这两部分文件共同作用的。compile project(‘:extras:ShimmerAndroid’)这一行是因为9GAG中存在其他Module,不知道Module的概念可以看下这篇博客Android Studio系列教程二–基本设置与运行, 总之你可以理解成Android Library,由于Gradle的普及以及远程仓库的完善,这种依赖渐渐的会变得非常不常见,但是你需要知道有这种依赖的。以上文件里的内容只是基本配置,其实还有很多自定义部分,如自动打包debug,release,beta等环境,签名,多渠道打包等,后续会单独拿出来讲解。2. 9GAG/extras/ShimmerAndroid/build.gradle每一个Module都需要有一个gradle配置文件,语法都是一样,唯一不同的是开头声明的是 apply plugin: ‘com.android.library’3. 9GAG/gradle这个目录下有个 wrapper 文件夹,里面可以看到有两个文件,我们主要看下 gradle-wrapper.properties 这个文件的内容:#Thu Dec 18 16:02:24 CST 2014distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip4. 9GAG/build.gradle// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:1.0.0'}}allprojects {repositories {jcenter()}}

声明了android gradle plugin的版本,android studio 1.0正式版必须要求支持gradle plugin 1.0的版本。

5. 9GAG/settings.gradleinclude ':app', ':extras:ShimmerAndroid'

文件中的 app, extras:ShimmerAndroid 都是module,,如果还有其他module都需要按照如上格式加进去。

怀着淡定从容的心态去面对,也就没有了真正意义上的寂寞了。

Android Studio之Gradle文件解析

相关文章:

你感兴趣的文章:

标签云: