您的位置:首页 > 移动开发 > Android开发

Android Studio教程(五)之Gradle

2016-06-10 21:15 615 查看

一、Gradle基础

1、Gradle概念

Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。

2、Gradle构建

Android Studio使用Gradle构建工具,Eclipse的ADT插件使用的是Ant构建工具。要知道构建的概念首先了解下程序的生成过程,可以百度一下,有很多优秀的博文。通过对博客的阅览,初步知道程序的生成过程其实就是将.dex文件、资源文件和.aidl文件打包成apk的过程。
Gradle针对不同语言有不同插件,在Android平台叫Android
Gradle Plugin。

3、为什么使用Gradle

因为Gradle内置通过Maven和Lvy进行依赖管理。
依赖管理又是什么意思呢?蛮简单来说就是管理依赖的jar包。
那仓库又是什么东西呢?仓库:简单理解就是存的一些jar包的云端
常见的仓库有如下三种:
* maven

* ivy

* jcenter仓库地址

常见写法

mavenCentral()别名,表示依赖是从Central Maven 2仓库中获取的。

jcenter()别名,表示依赖是从Bintary’s JCenter Maven仓库中获取的。

mavenLocal()别名,表示依赖是从本地的Maven仓库中获取的

仓库地址举例

repositories {//默认仓库

    jcenter()//它是当前世界上最大的Java和Android开源软件构件仓库

}

4、Gradle配置

1、配置Gradle的环境变量:

①配置GRADLE_HOME-->D:\Android\Android Studio\gradle\gradle-2.10

②配置path-->%GRADLE_HOME%\bin

2、配置GRADLE_USER_HOME(随意指定一个目录主要是防止使用c盘过大空间)

-->D:\java\gradle\.gradle 默认是在C:\Users\ifengouy\.gradle

注:可在工作空间的build.gradle查看Gadle的使用的版本。

二、项目中Gradle的含义

在AS项目中,项目下以及每个modle各有一个gradle脚本。

1、MyApplication/build.gradle

这个文件是整个项目的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:2.1.0'

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

allprojects {
repositories {
jcenter()
}
}

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

内容主要包括以下两方面:
一个是声明仓库的源,这里可以看到是指明的jcenter(),之前版本则是mavenCentral(), jcenter可以理解成是一个远程仓库,兼容maven中心仓库,而且性能更优。
另一个是声明了android gradle plugin(Gradle插件)版本,需和AS安装目录下的gradle版本一致。入我的在D:\Android\Android
Studio\gradle目录下:

2、MyApplication/App/build.gradle

这个文件是app文件夹下这个Module的gradle配置文件,也可以算是整个项目最主要的gradle配置文件,如图:

// 声明是Android程序,如果是.library则为类库
apply plugin: 'com.android.application'

android {
// 编译SDK的版本,对应sdk的platforms
compileSdkVersion 23
// build tools的版本,对应sdk的build-tools
buildToolsVersion "23.0.3"

//等价于eclispe的<usesdk/>
defaultConfig {
// 应用的包名
applicationId "com.example.ifengouy.myapplication"
//等价于eclipse的minSdkVersion,表示支持的最低的android系统
minSdkVersion 15
//等价于eclipse的targetSdkVersion,表示支持的最高android系统
targetSdkVersion 23
versionCode 1
versionName "1.0"
}

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

buildTypes {
//发行
release {
//打包的时候是否进行压缩,false表示不压缩
minifyEnabled false
//proguard-rules.pro定义混淆规则的文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
//依赖
dependencies {
//编译libs目录下的所有jar包
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
// 编译extras目录下的ShimmerAndroid模块
compile project(':extras:ShimmerAndroid')
}


说明:buildToolsVersion:这个需要你本地安装该版本才行,很多人导入新的第三方库,失败的原因之一是build version的版本不对,这个可以手动更改成你本地已有的版本或者打开SDK
Manager 去下载对应版本。

3、MyApplication/settings.gradle

这个文件是全局的项目配置文件,里面主要声明一些需要加入gradle的module,如我的MyApplication项目就包含app这一个model。
include
':app'

4、注意如下三个常见错误

compileSdkVersion不存在
buildToolsVersion不存在
com.android.tools.build:gradle:2.1.0不存在
如果出是由于如上三个版本不对,需进行配置,配置成电脑上已经安装的版本即可。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: