Android build.gradle文件详解

本文详细介绍了Gradle作为Android开发项目构建工具的核心功能及其配置文件build.gradle的使用方法。通过具体示例展示了如何利用Gradle管理依赖、设置编译选项及构建类型等。

Android build.gradle详解


什么是gradle?
gradle是一个项目构建工具,java开发中有两个大名鼎鼎的项目构建Maven,Ant,其中maven简单易控深受开发者喜爱。
项目构建工具是什么?能干吗?
开发某些项目时,需要很多jar或者库的支持,还没开始开发就下载了n多个库,浪费了时间不说,这些库之间兼容性又无法保证。删了?白下载了。不删?又不兼容。此时就需要使用项目构建工具,简单的说就是一个可以根据简单的配置文件自动去下载相应包/库的软件。自动的还很简单,不用岂不亏了。多个项目构建工具各有特点,但是核心思想一样。
gradle的特色?
首先,goole推荐使用的Android开发工具中自带了Gradle可见其一定有过人之处。不同于Maven基于XML文件来完成配置,Gradle使用特定的语言(DSL)来声明配置,难度还行,但是简单方便。


下面是开发中的两个build.gradle文件

build.gradle(project MyFirst)

buildscript {
    repositories {
        jcenter()   
    //是一个类似于github的代码托管仓库,声明了此配置,
    //可以轻松引用 jcenter上的开源项目
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'

        //gradle是一个强大的项目构建工具,不仅可以构建Android,还可以构建java,C++等
    //此处引用android的插件
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle(Module:app)

// 声明是Android程序,
//com.android.application 表示这是一个应用程序模块
//com.android.library 标识这是一个库模块
//而这区别:前者可以直接运行,后着是依附别的应用程序运行
apply plugin: 'com.android.application'

android {
    // 编译SDK的版本
    compileSdkVersion 21
    // build tools的版本
    buildToolsVersion "21.1.1"

    defaultConfig {
        // 应用的包名
        applicationId "me.storm.ninegag"
    //Android支持的最低版本
        minSdkVersion 14        
        targetSdkVersion 21
        versionCode 1
        versionName "1.0.0"
    }

    // java版本
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    //指定生成安装文件的相关配置
    buildTypes {
        release {
            // 是否进行混淆
            minifyEnabled false
            // 混淆文件的位置
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

        //proguard-android.txt 在Android SDK目录下,里面是所有项目的混淆规则
        //proguard-rules.pro 是当前项目的根目录下的,里面可以编写特有的混淆规则
        }
    debug{  //测试版安装文件的配置(可以忽略)
    }
    }

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

//依赖关系
//本地依赖:可以对本地Jar包或目录添加依赖关系
//库依赖:可以对项目中的库模块添加依赖关系
//远程以来:可以对 jcenter库上的开源项目添加依赖
//
dependencies {
    // 编译libs目录下的所有jar包
    compile fileTree(dir: 'libs', include: ['*.jar'])   
    //依赖声明,标识将libs目录下多有.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')
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鼠晓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值