文档章节

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

Kifile
 Kifile
发布于 2014/12/12 07:50
字数 1389
阅读 114
收藏 3

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

转载请标明出处(http://my.oschina.net/u/1785888/blog),再次感谢

 

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

能够看到以下输出:


就说明你已经成功的配置好了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 项目而言,他的目录结构应该是这样的:


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

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


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

check 完成之后,我们执行:

gradle tasks


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


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

gradle assembleDebug

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


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

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

© 著作权归作者所有

Kifile
粉丝 0
博文 2
码字总数 3353
作品 0
深圳
程序员
私信 提问
Gradle 构建 android 应用常见问题解决指南

前言 android gradle 插件已经发展到0.5.7,同时gradle 本身也到了1.8,相比两个月前,android gradle 更快,更完善,也更好用了,为了让各位androider 早日用上gradle这样的神器,特地写一篇关于g...

军歌
2014/02/13
0
0
Gradle和Gradle插件

文章是翻译整理的官网文档developer.android/studio/build/ 一、Gradle和Gradle插件 Gradle:Gradle是一款帮助开发人员更快更好的编译、自动化运行和分发软件的工具。Gradle具有无与伦比的通...

都有米
2018/06/19
0
0
给 Android 开发者的 Gradle 入门指南

本文的目的是为您提供关于 Gradle 的高级概述,以及在开发 Android 应用程序时如何适应整个构建系统。 我将通过 Gradle 和 Gradle 的 Android 插件的基础知识,以及新的 Android 项目附带的默...

oschina
2017/11/22
3K
2
IDEA 及 Gradle 使用总结

IDEA 及 Gradle 使用总结 自动编译组件 目前Android开发的主流开发工具是 Eclipse 和 IDEA 目前主流的自动化打包工具时 ant,maven,gradle。 maven工具中有自己的依赖仓库维护,很多开源支持...

舒文joven
2018/07/17
0
0
Android Gradle 常用使用场景实现方式的总结

Gradle 作为一款灵活多变的构建插件,与 Android Studio 的结合,能够解决过去使用 Eclipse 开发 App 时所遇到的诸多问题。同时,基于 Groove 这样一款 DSL 语言的脚本特性,记住各种语法显然...

亦枫
2018/10/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linus 本尊来了!为什么 KubeCon 越来越火?

阿里妹导读: 从200人的小会议到3500 多位云原生和开源领域工程师齐聚一堂的大会,KubeCon 只用了四年,昨天,在KubeCon China 2019 上阿里巴巴宣布开源 OpenKruise,今天,Linus 本尊竟然现...

阿里云云栖社区
28分钟前
1
0
五小时构建云原生电商平台 | KubeCon SOFAStack Workshop 详解

本文根据 KubeCon China 2019 同场活动 SOFAStack Cloud Native Workshop 内容整理, 文末包含文档、PPT 地址,欢迎试用和提出建议。 2019 年 6 月 25 日,在 KubeCon China 2019,全球知名开...

SOFAStack
29分钟前
4
0
跨平台开发框架DevExtreme v19.1.4正式发布|附下载

DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动、Web开发框架,可以直接在Visual Studio集成开发环境,构建iOS,Android,Tizen和Windows Phone 8应用程序。D...

FILA6666
30分钟前
2
0
数据库链接断开 Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

报错信息如下: Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 97,130 mill......

为了美好的明天
37分钟前
3
0
Flutter for Web 详细预研

背景 Google在最新的Google I/O上推出了Flutter for Web,旨在进一步解决一次代码,多端运行的问题。Flutter for Web还处于早期试验版,官方不建议在生产环境上使用。那么到底它的实际情况怎...

阿里云官方博客
39分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部