典型android应用模块的构建流程,Android构建系统

构建系统概述(Build System Overview)

Android构建系统(Android build system)是一个你可以用它来创建,测试,运行及打包应用的工具集。这个构建系统可以作为一个集成的工具运行在Android Studio的菜单上,也可以独立的运行在命令行工具上。你可以使用构建系统的这些特性去实现:

定制,配置及扩展构建过程

使用相同的项目及模块为你的应用创建多个不同特性的APKs

跨代码集的重用代码和资源文件

Android构建系统的灵活性使你可以完成这些目标,而不用去修改应用核心源码文件。要创建一个Android Studio项目,请参考 从Android Studio创建及运行程序。要为Android Studio项目进行自定义构建配置,请参考配置Gradle Builds。

构建流程详述(A Detailed Look at the Build Process)

构建流程在生成APK程序的过程中会调用到很多工具去处理并自动生成很多中间文件。如果你在Android Studio中开发,你每次为你的工程或模块执行Gradle Build任务时,都会完整的执行一次构建流程。构建流程相当灵活,所以很有用,然而,由于构建流程的可配置性及可扩展性,要理解在构建过程中发生了什么就需要付出更多精力。下面这个流程图描述了构建流程中不同工具的调用及处理:

e92b33c87deba4ce44dec7c8a202f2f8.png

下面简述一个典型的构建流程。构建系统从产品配置特点,构建类型及依赖中合并所有资源。如果不同文件夹下面包含了同一名称的资源或配置,相关的覆盖优先级从高到低为:依赖(dependencies)->构建类型(build types)->产品特性(product flavors)->主源代码目录(main source directory).

Android资源打包工具(aapt)将你应用的资源文件,例如 AndroidManifest.xml,Activity引用到的XML文件编译,并且生成一个R.java源码,以便你可以在你的java代码中引用你的资源。

aidl工具转换所有的.aidl文件并生成对应的java接口

所有的java源码,包括R.java和.aidl文件,都被java编译器编译成.class文件

dex工具转换所有.class文件为Dalvik字节码。任何第三方的库及你引用到的相关模块生成的.class文件也一起被转换成.dex文件,以便它们可以被打包进最终的.apk文件中。

所有不可编译的资源文件(例如图片),已经编译的资源,及.dex文件都被apkbuilder工具打包为一个.apk文件

一旦.apk文件生成后,它必须用一个(debug或release)key去签名,才能被安装到设备上。

最后,如果应用是用release key签名的,还必须用zipalign工具将.apk文件对齐。经过对齐处理的.apk文件在应用实际运行过程中可以有效减少内存占用。

提示:一个应用被限制最多可以有64K个方法索引,如果你的应用超过这个限制,构建过程会输出以下错误信息:

Unable to execute dex: method ID not in [0, 0xffff]: 65536.

要避免这个错误,可以参考构建超过65K方法的应用。

构建输出(Build output)

构建系统分别为不同的构建需求在app/build文件夹生成不同的APK文件:在app/build/outputs/apk目录下包含着以app--.apk的文件,例如app-full-release.apk 及 app-demo-debug.apk。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值