深入理解Android之Gradle(完整版).pdf

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深入理解Android之Gradle(完整版)

深入理解Android 之Gradle Gradle 是当前非常“劲爆”得构建工具。本篇文章就是专为讲解Gradle 而来。介绍Gradle 之前,先说点题外话。 一、题外话 说实话,我在大法工作的时候,就见过Gradle 。但是当时我一直不知道这是什么东西。 而且大法工具组的工程师还将其和Android Studio 大法版一起推送,偶一看就更没兴趣了。 为什么那个时候如此不待见Gradle 呢?因为我此前一直是做ROM 开发。在这个层面上,我 们用 make ,mm 或者mmm 就可以了。而且,编译耗时对我们来说也不是啥痛点,因为用 组内吊炸天的神机服务器完整编译大法的 image 也要耗费 1 个小时左右。所以,那个时侯 Gradle 完全不是我们的菜。 现在,搞APP 开发居多,编译/打包等问题立即就成痛点了。比如:  一个APP 有多个版本,Release 版、Debug 版、Test 版。甚至针对不同APP Store 都有不同的版本。在以前ROM 的环境下,虽然可以配置Android.mk ,但是需要依 赖整个Android 源码,而且还不能完全做到满足条件,很多事情需要手动搞。一个 app 如果涉及到多个开发者,手动操作必然会带来混乱。  library 工程我们需要编译成 jar 包,然后发布给其他开发者使用。以前是用 eclipse 的export,做一堆选择。要是能自动编译成jar 包就爽了。 上述问题对绝大部分APP 开发者而言都不陌生,而Gradle 作为一种很方便的的构建工 具,可以非常轻松得解决构建过程中的各种问题。 二、闲言构建 构建,叫build 也好,叫make 也行。反正就是根据输入信息然后干一堆事情,最后得 到几个产出物(Artifact )。 最最简单的构建工具就是make 了。make 就是根据Makefile 文件中写的规则,执行对 应的命令,然后得到目标产物。 日常生活中,和构建最类似的一个场景就是做菜。输入各种食材,然后按固定的工序, 最后得到一盘菜。当然,做同样一道菜,由于需求不同,做出来的东西也不尽相同。比如, 宫保鸡丁这道菜,回民要求不能放大油、口淡的要求少放盐和各种油、辣不怕的男女汉子 们可以要求多放辣子总之,做菜包含固定的工序,但是对于不同条件或需求,需要做不 同的处理。 在 Gradle 爆红之前,常用的构建工具是 ANT ,然后又进化到Maven 。ANT 和 Maven 这两个工具其实也还算方便,现在还有很多地方在使用。但是二者都有一些缺点,所以让更 懒得人觉得不是那么方便。比如,Maven 编译规则是用XML 来编写的。XML 虽然通俗易 懂,但是很难在xml 中描述if{某条件成立,编译某文件}/else{编译其他文件}这样有不同条 件的任务。 怎么解决?怎么解决好?对程序员而言,自然是编程解决,但是有几个小要求:  这种“编程”不要搞得和程序员理解的编程那样复杂。寥寥几笔,轻轻松松把 要做的事情描述出来就最好不过。所以,Gradle 选择了Groovy。Groovy 基于Java 并拓展了Java 。 Java 程序员可以无缝切换到使用Groovy 开发程序。Groovy 说白 了就是把写Java 程序变得像写脚本一样简单。写完就可以执行,Groovy 内部会 将其编译成Java class 然后启动虚拟机来执行。当然,这些底层的渣活不需要你管。  除了可以用很灵活的语言来写构建规则外,Gradle 另外一个特点就是它是一种 DSL,即Domain Specific Language ,领域相关语言。什么是DSL,说白了它是某 个行业中的行话。还是不明白?徐克导演得《智取威虎山》中就有很典型的 DSL 使用描述,比如: 土匪:蘑菇,你哪路?什么价?(什么人?到哪里去?) 杨子荣:哈!想啥来啥,想吃奶来了妈妈,想娘家的人,孩子他舅舅来了。(找同行) 杨子荣:拜见三爷! 土匪:天王盖地虎!(你好大的胆!敢来气你的祖宗?) 杨子荣:宝塔镇河妖!(要是那样,叫我从山上摔死,掉河里淹死。) 土匪:野鸡闷头钻,哪能上天王山!(你不

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档