深入理解Android之Gradle(一)

现在,搞APP开发,编译/打包等问题成为痛点,例如:

  • 一个APP有多个版本,Release版、Debug版、Test版,还有现在做的比较多的,多渠道打包,针对不同的应用市场打不同的渠道包,虽然可以配置Android.mk,但需要依赖整个Android源码,而且还不能完全满足条件;
  • library 工程我们需要编译成jar包,然后发布给其他应用开发者使用,一般在eclipse上就需要export;如果这一切自动编译成jar包,对开发者来说,真是福利满满啊;

那如果使用构建工具,我们就会更好的解决构建过程中的各种问题。对于构建,很多人会立马想到build或者是make,就是根据输入信息然后做一堆事情,最后得到Aritifact;例如:make构建工具,就是根据Makefile文件里面写的规则,执行相应的命令,最后得到产物;下面我们来详情介绍Gradle相关的内容;此系列文章为学习总结,理解或实践会有错误的地方,还希望各位大佬指出,促进学习!

Gradle 介绍

在Gradle火爆之前,我们常见的构建工具是ANT,后来进化成Maven,借鉴网上的说法:Maven编译规则是XML来编写的,XML虽然通俗易懂,但是很难再XML文件中面熟if{某条件成立,编译某文件}else{编译其他文件}这样有不同条件的任务;Gradle使用的是Groovy动态语言进行编写,Groovy是基于java并且拓展java,而且Gradle除了灵活的语言编写构建规则外,还有一点是领域相关语言DSLDomain Specific Language。总结来说,可以发现Gradle构建工具更能让开放者上手。下面我这边咱们来慢慢学习:

Groovy 语言简单介绍

Groovy之前我这边也简单介绍过,这边有一点需要注意的是:当我们执行Groovy脚本时,Groovy会先将其编译成Java 类字节码,然后通过JVM来执行这个java类。

Groovy 开发环境
Groovy 官方网站地址,部署开发环境还是相对简单:

  • $ curl -s get.sdkman.io | bash
  • $ source "$HOME/.sdkman/bin/sdkman-init.sh"
  • $ sdk install groovy
  • $ groovy -version

以上就安装完毕;
输入-virtual-machine:~$ groovyConsole
可以打开一个用Groovy写的图形化的GUI,非常简洁好用,

  • Ctrl+R 执行窗口代码,如果有代码段被选中则执行选中的代码。
  • Ctrl+W 清空输出面板。默认不清空,可以在菜单-View里勾选"Auto Clean Output On Run"在每次执行前自动清空。默认每行代码都打印到输出面板,可以在菜单-View里取消勾选"Show Script in output"。
  • Ctrl+L 编译,语法错误很容易就爆出来了哦。
  • Ctrl+I 查看最后运行的表达式的对象信息,包括所在类的所有方法。
  • Ctrl+J 查看最后运行的代码里的所有变量信息,和所在类的所有方法。
  • Ctrl+T 查看生成的抽象语法树(AST)的类。
    如果程序执行时间比较长,想要终止程序,记得在菜单--Script里勾选"Allow Interruption",否则点击"Interrupt Running Script"是没有用的。
    面板最下面一行是状态显示栏,左边显示程序执行情况,最右边是光标所在的row:column
    一般的小脚本不需要导入jar包,如果需要外部jar包的时候,通过菜单--Script里的"add jar to classpath"或者"add directory to classpath"就可以使用了,不过这个在每次打开的时候都需要设置,所以如果是常用的jar包,可以直接把它们放到groovy的lib目录里面这样每次启动的时候都会自动加载。

以上准备工作做完,即将进入我们的学习Gradle之旅,欢迎关注后续更新
,相互学习

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 43,892评论 6 343
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 130,513评论 18 138
  • 导语: 随着技术的发展,不管是前端开发、服务端开发或者是移动端开发(移动也是前端的一个分支)中都会用到自动化构建工...
    伊始雨深阅读 2,515评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 165,936评论 24 701
  • 有人说家家有本安难念的经,清官难断家务事。在我看来女人之间的事,也差不多如此,藕断丝连,难以辨得干净。 要说女人间...
    田小伍阅读 220评论 14 3
  • 世间最可怕的不是恐惧和死亡,而是无知。因为无知,我们轻信了太多欺骗和谎言,浪费了太多时间,一次次用这种方式对生进行...
    时刻归零阅读 335评论 0 1
  • 我站在楼上, 深情地向远方眺望, 在地图从上往下的方向; 爱上这朴素的仪式, 那是对珍贵东西的宣誓, 是心中的向往...
    天然气闪爆阅读 51评论 0 0