基于Gradle建立Android项目(1)

前言

Android Studio是Google推出的编写Android应用的IDE。也许你已经习惯了Eclipse,但是还是强烈建议大家换为Studio,好处在网上有很多答案,就我自己而言,总结一下有以下一些:

  1. 速度更快 -- 这里指的是代码提示速度。
  2. 更多新的功能 -- 写文章时已经增加了Memory Monitor功能。
  3. 更好的管理代码 -- 使用Gradle来构建程序,更加清爽。

(后续再加)


这个也引出我们为什么要介绍Gradle,Android程序以后都使用Gradle来构建,当然要知道Gradle这个工具了!

注:以下文章参考 Android developer 中 Building your project with gradle

Gradle是什么

“Gradle is build automation evolved

Gradle can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or indeed anything else.”

来自Gradle官网


Gradle就是一个项目自动化构建工具,类似于Ant,maven这些工具。正如官网上所说的,gradle集成了ant强大的构建能力和灵活性,以及maven在依赖管理上的优点。基于Groovy DSL。


Gradle与Android Studio的关系

Studio是基于 IntelliJ IDEA的,只是包含了gradle plugin,因此没有studio,依然可以使用Gradle来构建Android应用。Studio必须依赖Gradle来构建程序,就像Eclipse依赖Ant一样。


Gradle的配置文件

在Android项目中一般包含两类build file,一类属于project,一类属于module。

  1. project中包含build.gradle 以及 settings.gradle。其中setting.gradle 配置包含的module有哪些,build.gradle中可配置一些全局变量,例如依赖库地址等。
  2. module中包含build.gradle。这里包含关于如何编译module的一些信息。

project vs module

project是一个完整的app,可能包含一个或者多个module。module是app的一部分,可以单独的build,test,debug。在module中包含source code以及resource。Studio中包含三种module:

  • java library modules :包含可重用的java代码。gradle会将其生成jar包。
  • Android library modules :包含可以重用的一些关于Android 的code和资源。gradle打包为ARR(Android ARchive)。
  • Android Application modules : 包含生成app的code以及资源,可能会依赖于java library以及Android library。gradle将这部分生成apk。


build file具体作用

  • Build Variants :变异,顾名思义,就是可以配置build file使得同一个project产生不同的 APK,例如产生一个付费版、一个免费版。
  • Dependence :有些app会依赖其他一些库,也是通过build file来定义依赖哪些文件。
  • Manifest entries :在build file中可以定义一些变量,这些变量会重写manifest中对应的参数。这个也是为了生成不同的APK而设置的。因为同一个module只能有一个manifest文件来配置target sdk,minimum sdk,package name等等。而不同的apk有可能会有不同的package name、target SDK等。通过配置build file可以覆盖manifest文件中对应的参数进而生成不同的apk。
  • signing :配置你的keystone。
  • ProGuard:这个还不是太清楚,已有补充。目前只知道每一个build variant都可以配置一个ProGuard。
  • Testing :gradle可以产生一个test apk用于测试,也可以在build过程中进行测试。


关于dependence:

gradle中定义了三类dependence:

  • module dependence : 依赖project中其他的modules
  • Local dependence :依赖本地已经生成的jar包等。
  • Remote dependence :依赖remote repository中的文件。Gradle中默认使用maven dependence。格式为 group:name:version。例如com.google.guava:guava:16.0.1 。


关于 Gradle Wrapper

Studio中使用的Gradle可以是自己本机下载的,但是这个需要经常自己下载更新。使用Gradle Wrapper可是使得自己不用下载不同版本。可以在build file中配置需的gradle版本,Wrapper可以下载并使用配置的gradle。


本篇主要介绍了Gradle和Android Studio的一些关系,下一篇将介绍如何使用Gradle和Studio来构建Android程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值