摘抄 : Sam (甄峰) sam_code@hotmail.com
此Blog大量摘抄网络内容。谢谢各位研究者分享。
1. Android
APP的构建:
不管用Eclipse+ADT还是 Android Studio, 创建APP的过程相当简单, Build,
Run,或创建有签名的APK,只需鼠标点击Menu即可。 这是因为构建工具已经在后台做了大量工作。
例如: 大量资源文件,
如Layout中的控件,如何构建成一个个实体,Java代码如何被编译,最终如何添加签名,如何生成APK。
这都是构建工具的工作。
一个APP被构建出的过程相当复杂,请看下图:
2.
3. JVM字节码再被 dex工具 转化为dalvik字节码 (dex文件)
4. .dex文件,资源文件和其它不被编译的文件(assets)被打包成APK。
5. 添加签名(临时/正式)到APK。
2.
早起的构建工具----Ant和Maven:
早期的构建工具有: Apache Ant和 Maven.
2.1:Apache Ant:
Ant 2000年发布,很快成Java项目最流行的构建工具。
它的优点有:
简单,易学,不需要特殊准备就可以上手。
基于过程编程 ,使得构建非常灵活
支持插件。
不足支持:
XML作为脚本配置,若项目较大,XML文件会变得非常大。
2.2: Apache Maven:
Maven发布与2004年, 为了解决Ant造成的问题。
它也使用XML作为构建配置的文件格式。且提供了从网路自动下载依赖的能力。
但 XML会变得太大,以致难以维护的问题还继续存在。
3. Android
新构建工具Gradle:
在反思前两者的问题后,提出了DST(Domain Special Language,
领域专用语言)的概念。目标是设计一套能够解决特定领域问题的语言。 Gradle就是例子。
2012年,Gradle发布, 它的构建脚本不再使用XML,
而是使用基于Groovy的DSL进行书写。比Ant和Maven的
XML更加清晰,简洁。它灵活而强大,且支持自动下载依赖包。
2013年,成为Android Studio的 默认构建工具。
Groovy语言很容易学习:
Groovy 代码非常易读,如果你学习过
Java,那么学习 Groovy 的曲线不会陡峭。
如果你想构建自己的任务和插件,那么对 Groovy 有更深层次的理解尤为重要。
不过因为 Groovy 是基于 Java 虚拟机的,所以你完全可以用 Java 或者其他基于 Java 虚拟机的语言来编写你的自定义插件。
如果你想构建自己的任务和插件,那么对 Groovy 有更深层次的理解尤为重要。
不过因为 Groovy 是基于 Java 虚拟机的,所以你完全可以用 Java 或者其他基于 Java 虚拟机的语言来编写你的自定义插件。
4.
Gradle的关键概念:
Gradle中有两个关键的概念: 项目和任务。(Project and Module)
每次构建,需要先构建一个Project. 而一个Project,拥有一个或多个Module。
Project拥有一个build.gradle脚本。 每个Module也拥有一个build.gradle脚本。