Android开发-Gradle基础

1. 什么是Gradle

Gradle 是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。百度百科

2. Gradle Android Plugin的使用

下面我们来看看Android studio中如何使用。Gradle中有许多可配置块,每个可配置块中有许多可配置的属性,这些配置块在android{ }块中

2.1 基本介绍

android studio中的project下面的build.gradle文件有这么一段代码。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'

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

buildscript{…} 配置了用于驱动构建的代码,上面的代码声明使用jCenter仓库,并指定jCenter的classpath。
当然,如果也可以将上述代码写在model的gradle文件最前面。

2.2 defaultConfig

默认配置。我们常见的有如下属性。

  • applicationId 应用ID,也就是我们的包名
  • versionCode 版本号 int型
  • versionName 版本名称 string
  • minSdkVersion 支持的最小版本号
  • targetSdkVersion 希望的SDK版本(不知道解释的正确不)
2.3 buildTypes

构建类型,我们常见的就debug和release,当然还有其他。我们现在以release为例,简单说下其中几个属性

  • minifyEnabled 是否开启代码压缩和proguardFiles配合使用
  • shrinkResources 是否去除无用资源
  • proguradFiles 混淆文件路径
  • signingConfig 签名配置
buildTypes {
        release {
            minifyEnabled false
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.myConfig
        }
    }
2.4 signingConfigs

这个下面也是分块的,我们以上面用到myConfig为例,介绍下属性。

  • storeFile 签名文件路径
  • storePassword store密码
  • keyAlias 别名
  • keyPassword 签名密码
signingConfigs {
        debug {
            storeFile file('xxxx.jks')
            storePassword '123456'
            keyAlias 'com.xxxx'
            keyPassword '123456'
        }
        myConfig {
            storeFile file('xxxx.jks')
            storePassword '123456'
            keyAlias 'com.xxxx'
            keyPassword '123456'
        }
    }
2.5 sourceSets

我把这个叫做文件管理,这里可以指定一些文件的路径。先给出代码

sourceSets {
        main {
            manifest.srcFile 'src/main/java/AndroidManifest.xml'
            res.srcDirs = ['src/main/res']
        }
    }

这里可以指定一些文件或者文件夹的路径,如配置文件,资源文件等等,还包括一下文件

  • aidl 文件夹 aidl 文件
  • jni 文件夹 .c,.h文件
  • JniLibs 文件加 .so库
  • assets 文件夹 资源
  • Render Script文件夹 rs脚本
    上面这些都是默认在main文件夹下的,我们当然可以通过配置路径来改变他们的位置。而且 我们可以将这里文件模块化(前面那博客有提到过。)
2.6 多渠道打包

这里就不在多说,以前博客有说到过。

2.7 lintOptions

配置一些lint的属性,如下。

lintOptions {
        warningsAsErrors false
        checkReleaseBuilds false
        abortOnError false
    }

具体意思就不在啰嗦了。

2.8 包管理

这里主要说下aar的引入。
在gradle中添加如下代码

repositories {   
    flatDir {        
       dirs 'libs'   
    }
 }

然后添加依赖

compile(name: 'leakcanary-android-1.4-beta1', ext: 'aar')

name为aar包名字,ext为扩展名。

3. 总结

上面只是说了一些基本的属性,Gradle的强大之处远远不止这些。还是等我去学学Groovy再来嘻嘻研究下他的强大吧。

4.参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值