Quantcast
Channel: Sam的技术Blog
Viewing all articles
Browse latest Browse all 158

Android App的构建过程和工具

$
0
0
摘抄 : Sam (甄峰)  sam_code@hotmail.com

此Blog大量摘抄网络内容。谢谢各位研究者分享。

1.  Android APP的构建: 
不管用Eclipse+ADT还是 Android Studio, 创建APP的过程相当简单, Build, Run,或创建有签名的APK,只需鼠标点击Menu即可。 这是因为构建工具已经在后台做了大量工作。

例如: 大量资源文件, 如Layout中的控件,如何构建成一个个实体,Java代码如何被编译,最终如何添加签名,如何生成APK。 这都是构建工具的工作。

一个APP被构建出的过程相当复杂,请看下图: 

1. 资源文件,如Layout,Values等都被aapt编译,并生成对象,最终在R文件中被引用。
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 虚拟机的语言来编写你的自定义插件。


4. Gradle的关键概念: 
Gradle中有两个关键的概念: 项目和任务。(Project and Module)
每次构建,需要先构建一个Project. 而一个Project,拥有一个或多个Module。
Project拥有一个build.gradle脚本。 每个Module也拥有一个build.gradle脚本。





 

Viewing all articles
Browse latest Browse all 158

Trending Articles