3、在生成最终 A
PK 之前,打包器会使用 zipalign 工具对应用进行优化,减少其在设备上运行时占用的内存。
重点:
如上面的流程所示,是典型 Android 应用模块的构建流程,但如果看的更细致一点它的流程应该如下:
- AAPT(Android Asset Packaging Tool)工具,Android资源打包工具。会打包资源文件(res文件夹下的文件),并生成R.java和resources.arsc文件。
- AIDL工具会将所有的.aidl文件编译成.java文件。
- JAVAC工具将R.java、AIDL接口生成的java文件、应用代码java文件编译成.class文件。
- dex脚本将很多.class文件转换打包成一个.dex文件。
- apkbuilder脚本将资源文件和.dex文件生成未签名的.apk文件。
- jarsigner对apk进行签名。
这些构建中使用的工具或者脚本,在SDK的build-tools或者tools下可以找到
详细的流程图如下:
这样就Android打包的流程就明明白白了。
gradle的配置含义
Androidstudio 会与Android Plugin for Gradle 这个构建工具包协作,当我们在Androidstudio创建一个应用的时候,它会帮助我们创建自定义构建配置 build.gradle 文件,这个文件里的内容需要我们自己进行一些简单的更改。 这些纯文本文件使用域特定语言 (DSL) 以 Groovy 语言描述和操作构建逻辑,其中 Groovy 是一种适用于 Java 虚拟机 (JVM) 的动态语言。 无需了解 Groovy 便可开始配置构建,因为 Android Plugin for Gradle 引入我们开发需要的大多数 DSL 元素
如图,是我们工程中文件层级,现在我们来讲讲每个层级gradle的文件含义:
- settings.gradle 工程设置Gradle,文件位于项目根目录,用于指示 Gradle 在构建应用时应将哪些模块包括在内。 对大多数项目而言,该文件很简单,只包括以下内容:
include ‘:app’
不过,多模块项目需要指定应包括在最终构建之中的每个模块 - pr