Android构建系统是你用于构建,测试,运行及打包你的apps的工具包。构建系统既可以作为一个集成工具通过Android Studio的菜单运行,也可以在命令行中独立地运行。你可以使用构建系统的功能来做这些事情:
Android构建系统的灵活性使得你能够在不改变你的app的核心源代码文件的情况下达成所有这些目标。要编译一个Android Studio项目,请参考Building and Running from Android Studio。要对Android Studio项目配置特别的构建设置,请参考 Configuring Gradle Builds。
构建过程包含了在产生.apk的过程中用到的许多工具及有中间文件产生的子过程。如果你在使用Android Studio做开发,则在你每次为你的项目或模块运行Gradle build task时,都会完成完整的构建过程。构建过程是非常灵活的,而由于许多构建过程是可配置并可扩展的,因而理解构建过程背后都发生了什么是很有用的。下图描述了包含在一次构建中的不同工具及过程:
一次典型构建的常规过程大体如下。构建系统从配置的product flavors,build types,和dependencies合并所有的资源。如果不同目录下包含的资源具有相同的名字或设定,则遵循的覆盖优先级顺序为:dependencies覆盖build types,build types覆盖product flavors,product flavors覆盖main source目录:
注意:Apps有一个限制,引用的method数被限制在64K以内。如果你的app达到了这个限制,构建过程将输出如下的错误消息:
Unable to execute dex: method ID not in [0, 0xffff]: 65536.
要避免这个错误,请参考Building Apps with Over 65K Methods。
构建过程为每次构建在app/build目录下产生一个不同的APK:app/build/outputs/apk/目录包含名为app-<flavor>-<buildtype>.apk的包;比如app-full-release.apk和app-demo-debug.apk。
Done。
原文。