目录
- 目录
- 前言
- Gradle简介
- Gradle安装
- Gradle构建项目
- XYALLappbuildgradle模块gradle配置文件
- XYALLbuildgradle整个项目的gradle配置文件
- XYALLgradlewrappergradle-wrapperpropertiesgradle版本统一管理文件
- settingsgradle项目模块引用配置文件
- 编译
前言
由于生产力很大一部分取决于生产工具的使用,为了紧跟时代的潮流,我也从Eclipse切换到Android Studio来进行Android开发。
使用Android Studio的时候,最先遇到的难点应该就是Gradle的安装、配置和使用。这篇文章就针对我遇到的坑讲解一下如何在Android Stduio中配置Gradle。
Gradle简介
Gradle与Ant、Maven类似,是一种项目构建工具,之前使用的Eclipse是使用Ant来实现项目构建的。
Gradle基于Groovy语言,面向Android应用为主,它抛弃了基于XML的各种繁琐的配置,取而代之的是一种基于Grovvy的内部领域特定语言(DSL)。
Gradle安装
在Android Studio中第一次创建项目的时候,会自动下载Gradle。但是,由于国内互联网大环境影响,所以一般不使用代码的话,下载都会失败。所以这里介绍一种如何让Android Stuido使用已经下载好的gradle版本的方法。
首先,File->Settings->搜索gradle,将gradle的默认下载目录指定为:~/.gradle
。同时,不要着急立刻将从网上下载的最新的gradle版本放到这个目录下,因为Android Studio对目录结构是有要求的。
Ubuntu下,Gradle默认的目录结构如下:
可以看到,其中有串很诡异的无规律的字符串,这个是Android Studio自动生成的,你从网上下载的zip包必须要放到这个目录下才行。所以我推荐的做法是:
- 让Android Studio先自行下载一会Gradle,这样可以确定Gradle的安装目录和Gradle的版本。
- 从Gradle的官网上下载指定的版本(不一定是最新的,我安装的Android Studio需要的是gradle-2.4版本),然后将下载的zip包扔到那个无规律字符串目录下。记住:不需要解压,android studio自己会去解包。
- 在你自己的.bashrc文件里,配置一下GRADLE_PATH,如下:
# add gradle path
export GRADLE_PATH=/home/wzy/.gradle/wrapper/dists/gradle-2.4-all/6r4uqcc6ovnq6ac6s0txzcpc0/gradle-2.4
export GRADLE_USER_HOME=/home/wzy/.gradle
export PATH=$GRADLE_PATH/bin:$PATH
××××
Gradle构建项目
使用Gradle来构建项目的时候,需要对Gradle的配置文件有个大概的了解,以我的一个测试应用项目为例,Gradle的配置文件主要有:
- 每个模块的gradle配置文件。
- 整个项目的gradle配置文件。
- 统一管理gradle的gradle-wrapper配置文件。
- 整个项目的模块引用配置文件。
如下图所示:
接下来,我根据上述标记的红色部分进行逐一讲解。
XYALL/app/build.gradle(模块gradle配置文件)
我们首先来看一下这个配置文件的内容:
// 声明是android程序
apply plugin: 'com.android.application'
android {
// 编译SDK的版本
compileSdkVersion 23
// build tools的版本
buildToolsVersion "23.0.1"
defaultConfig {
// 应用包名
applicationId "com.example.wzy.xyall"
// 支持最低设备sdk的版本
minSdkVersion 19
// 支持目标设备sdk的版本
targetSdkVersion 23
// 应用版本号
versionCode 1
// 应用版本名称
versionName "1.0"
}
buildTypes {
release {
// 是否进行混淆
minifyEnabled false
// 混淆文件的位置
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
// 移除lint检查的error,防止编译终止
lintOptions {
abortOnError false
}
}
dependencies {
// 编译libs目录下所有的jar包
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
}
有几点需要说明:
- 文件开头apply plugin,如果是编译apk,值为’com.android.application’,如果编译的是库,则需要改为’com.android.library’。
- buildToolsVersion必须是你本地安装的版本,可以通过SDK MANAGER来进行查看。这个值配置不对,会造成编译错误。
XYALL/build.gradle(整个项目的gradle配置文件)
文件内容如下:
buildscript {
repositories {
// gradle插件下载中心为jcenter
jcenter()
}
// gralde插件的具体版本。
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
}
// 项目中使用到的库、jar包的下载中心
allprojects {
repositories {
jcenter()
}
}
XYALL/gradle/wrapper/gradle-wrapper.properties(gradle版本统一管理文件)
文件内容如下:
#Mon Sep 21 12:15:49 CST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
gradle-wrapper的作用就是使用统一的方式来管理gradle,保证gradle使用的是统一的版本。说明几点:
- android studio首先从distributionBase/distributionPath查找gradle。
- 然后,从zipStoreBase/zipStorePath查找gradle。
- 如果上述都没有找到合适的gradle,则从distributionUrl指定的url去下载gradle。
注意:这里需要在.bashrc中增加GRADLE_USER_HOME的变量定义。
settings.gradle(项目模块引用配置文件)
这个是全局的项目配置文件,里面主要声明一些需要加入gradle的模块。
include ':app'
示例项目的配置表示只要app模块的build.gradle加入到编译中。
编译
上述配置完成后,就可以使用gradle编译项目了。常用的构建命令如下:
- gradle clean: 清除之前的构建。
- gradle test:执行测试。
- gradle compileJava:编译java。
- gradle check:代码检查。
- gradle build:构建打包。
最后再提示一下,构建打包完成后,编译出来的apk位于:$项目/app/build/outputs/apk/目录下。