原文网址:http://developer.android.com/sdk/installing/studio-build.html#detailed-build
Android 构建系统是用于构建、测试、运行和打包你app的工具。构建系统可以作为Android Studio菜单的集成工具使用也可以在命令行中独立运行。构建系统可用的特性有:
- 定制、配置、扩展构建过程
- 使用同一个工程和模块为你的app创建多个具有不同特性的APK
- 复用源代码集中的代码和资源(博主不太明白这句话的含义,原文为Reuse code and resources across source sets)
构建过程详解
构建的过程涉及很多工具和处理生成中间文件用于产生apk文件。如果你使用Android Studio开发,完整的构建过程将在每次你运行工程或者模块的Gradle构建任务后执行。构建的过程非常灵活所以很有用,明白帽子(hood)下具体发生了什么许多的构建过程是可配置和扩展的。下图描述了构建中涉及到的不同工具和处理过程。
一个典型的构建过程如下概述,构建系统合并所有的资源从配置的产品口味、构建类型和依赖。如果不同的文件夹包含同名或者同样设置的资源,覆盖的优先级顺序为:构建类型覆盖依赖、产品品味、主要源目录覆盖。
- 安卓资产打包工具(Android Asset Packageing Tool),把你的应用资源文件,例如AndroidManifest.xml文件和Activities的XML文件编译。生成R.java文件,你可以在你的java代码中引用你的资源
- aidl工具将所有的aidl接口转化为java接口
- 所有的java代码包括R.java和aidl文件,由java编译器编译成.class文件并输出
- dex工具转换.class文件为Dalvik虚拟机的字节码。模块中包含的第三方库和.class文件同样会转换到.dex文件中,所以你可以将他们打包到最终的apk文件
- 所有的不需要编译的资源,例如图片,编译好的资源,.dex文件送至apkbuilder tool,然后打包至apk文件
- apk文件构建好之后,如果要安装到设备上,还必须被利用debug或者release key对apk签名
- 最终,如果应用利用release模式签名,开发者还必须使用zipalign tool将apk对齐。对齐后的apk文件减少了运行在设备时的内存占用
构建输出
构建为每种构建变量在app/builder文件夹中生成相应的apk,app/build/outputs/apk/文件夹包含报名app-<flavor>-<buildtype>.apk。例如,app-full-release.apk和app-demo-debug.apk(码哥表示在Android Studio1.1.0中没有找到对应的文件夹和文件啊!!!)