Android Gradle编译学习日记之一(筹建 Gradle 环境以及编译 Android 应用)

Android Gradle编译学习日记之一(搭建 Gradle 环境以及编译 Android 应用)

大家如果喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢

转载请标明出处(http://blog.csdn.net/kifile),再次感谢

 

Google 在最近正式推出了 Android Studio 1.0版本,开发者首页的默认开发工具也已经更改成了 Android Studio,我想我们是时候全面转型到 Android Studio 开发了。


其实抛开界面因素,Android Studio 与 Eclipse ADT 构建 Android 应用主要的不同在于构建工具的改变, Eclipse 是通过 ant 进行项目构建,Android Studio 是通过 Gradle进行项目构建。


首先我们先来看看Google 为什么选择 Gradle 进行项目构建:

使用自动化构建工具能够帮助我们降低浪费在文件编译中的时间,目前常用的自动化构建工具有 ant, maven, gradle 三种。

maven 相对于 ant 所拥有的一个巨大优势就是maven 拥有一个数量庞大的三方资源库,你可以通过配置构建文件从网上引入各种资源包,而 ant 则需要

gradle 其实相当于 maven 的一个增量包,它能够使用 maven 所有的资源库,并且他所使用的构建文件的语法更加简单,入手容易。并且 Gradle 进行多渠道打包非常简单,这也是我们使用 Gradle 的一个非常重要的因素。


那么现在我们从头开始,构建我们的第一个 Android 项目


一、搭建 Gradle 编译环境

首先我们需要从 Gradle 的官网(http://www.gradle.org)上下载最新的 Gradle 包,目前最新的 Gradle 版本为 2.2.1

下载完毕之后,进行解压不再多说,之后我们开始配置 Gradle 的环境变量。

在 Linux 以及 Mac上等类 Unix 系统上你可以在你的环境变量文件,例如 /etc/profile, ~/.bashrc 中进行配置,相关的配置信息如下:

export GRADLE_HOME=/Users/kifile/Applications/gradle
PATH=${PATH}:${GRADLE_HOME}/bin

对于 Windows 的环境变量配置请自行查询,我这儿就不再详述了。

配置好环境变量以后,在终端中执行以下命令:

source /etc/profile

请注意将/etc/profile 更改为你自己更改过的额环境变量文件

执行完命令之后,你在终端输入

gradle -v
能够看到以下输出:

Android Gradle编译学习日记之一(筹建 Gradle 环境以及编译 Android 应用)

就说明你已经成功的配置好了Gradle 的环境变量


配置好了 Gradle 的环境变量之后,我们还需要再配置一下 Android 的环境变量,方法如上,代码如下:

export ANDROID_HOME=/Users/kifile/Applications/android-sdk-macosx
export ANDROID_NDK_HOME=/Users/kifile/Applications/android-ndk-r10b

配置这两个环境变量的目的主要在于告诉 Gradle 你当前的 Android 路径在哪里,以便查找对应的编译工具


二、建立一个简单地 Android 项目

(1)搭建 Android 目录结构

对于一个最基本的 Android 项目而言,他的目录结构应该是这样的:

Android Gradle编译学习日记之一(筹建 Gradle 环境以及编译 Android 应用)

java 目录用于存放 java 源码,res 目录用于存放资源文件(当然存放源码的路径我们可以自行设定,但是对于一个最基本的范例,我们就是用 Android 项目默认的结构就好了),build.gradle 文件用于存放项目构建信息

(2)配置 build.grade 文件

对于 Android 项目,他的 build.grade 文件样式如下:

buildscript {
repositories {
mavenCentral()
}

dependencies {
classpath 'com.android.tools.build:gradle:1.0.0-rc1'
}
}

apply plugin: 'android'

android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
}

buildscript 中声明了他会使用 maven 的中心仓库来获取依赖包,并且使用 1.0版本的 Android Gradle 编译工具进行编译

apply 一行则定义我们使用的插件类型为 android

android 标签中则是定义的相关项目信息,例如编译的 sdk 版本,以及编译的工具版本号

(3)配置 AndoridManifest.xml

AndroidManifest.xml 文件就按照最基本的 Android 配置就好了,反正只是一个测试而已,我的源文件如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kifile.library.download" >
    
    <application>
    </application>
    
</manifest>

(4)开始编译

编译之前我们先通过终端进入项目的顶层目录,就是上面目录结构中的 android 目录中

进入目录以后,我们在终端执行

gradle check
检查 Gradle 构建能否正常运行,在第一次运行的时候,你会发现耗时比较久,这是因为他需要去 maven 中心仓库获取依赖包,就是上面在 buildscript 中描述的com.android.tools.build:gradle:1.0.0-rc1

检查完成之后,如果成功会显示类似于下面的图:

Android Gradle编译学习日记之一(筹建 Gradle 环境以及编译 Android 应用)

其中 黄色的 UP-TO-DATE 代码部分资源未经过更改不必重新编译。

check 完成之后,我们执行:

gradle tasks

我们能够看到他将 Gradle 目前支持的编译类型都显示了出来:

Android Gradle编译学习日记之一(筹建 Gradle 环境以及编译 Android 应用)

其中Build tasks 部分为你可以构建的任务,我们这里就简单执行

gradle assembleDebug
来编译一个 Debug 类型的应用就好了,编译完成之后,显示 SUCCESSFUL,你可以在你的目录对应路径build/outputs/apk下看到编译出的 Apk 文件了

Android Gradle编译学习日记之一(筹建 Gradle 环境以及编译 Android 应用)

恭喜你,你已经成功了完成了你的第一个 Gradle 编译 android 应用

Ok,今天暂时就先写到这里,剩下的随后补上。