作者:郭孝星
微博:郭孝星的新浪微博
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell
Android Studio的项目构建系统是Gradle。
什么是Gradle呢?
Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。
Gradle有哪些优点?
- gradle对多工程的构建支持很出色,工程依赖是gradle的第一公民。
- gradle支持局部构建。
- 支持多方式依赖管理:包括从maven远程仓库、nexus私服、ivy仓库以及本地文件系统的jars或者dirs
- gradle是第一个构建集成工具(the first build integration tool),与ant、maven、ivy有良好的相容相关性。
- 轻松迁移:gradle适用于任何结构的工程(Gradle can adapt to any structure you have.)。你可以在同一个开发平台平行构建原工程和gradle工程。通常要求写相关测试,以保证开发的插件的相似性,这种迁移可以减少破坏性,尽可能的可靠。这也是重构的最佳实践。
- gradle的整体设计是以作为一种语言为导向的,而非成为一个严格死板的框架。
- 免费开源
Gradle提供了哪些功能?
- 一种可切换的,像maven一样的基于约定的构建框架,却又从不锁住你(约定优于配置)
Switchable, build-by-convention frameworks a la Maven. But we never lock you in!
- 强大的支持多工程的构建
- 强大的依赖管理(基于Apache Ivy),提供最大的便利去构建你的工程
Language for dependency based programming
- 全力支持已有的Maven或者Ivy仓库基础建设
- 支持传递性依赖管理,在不需要远程仓库和pom.xml和ivy配置文件的前提下
- 基于groovy脚本构建,其build脚本使用groovy语言编写
- 具有广泛的领域模型支持你的构建A rich domain model for describing your build.
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()
}
}
二 Gradle模块配置文件
apply plugin: ‘com.android.application‘
android {
compileSdkVersion 22//最高API等级
buildToolsVersion "22.0.1"//编译工具版本号
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‘
}//混淆配置文件
}
sourceSets {
main {
jniLibs.srcDirs =[‘libs‘]
}
}
}
dependencies {//依赖配置
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
compile ‘com.android.support:appcompat-v7:22.1.1‘
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-25 08:29:04