文章目录
前言
APK的详细构建流程稍微有点复杂 , 本讲解apk 构建的流程、需要的工具、及各工具的具体作用。
一、apk 是怎么生成的?
1.apk 打包流程
首先看一下,官网给到的apk 构造流程图:
2.详解:各流程的工具及顺序
- 1、AAPT(Android Asset Packaging Tool)工具,Android资源打包工具。会打包资源文件(res文件夹下的文件),并生成R.java和resources.arsc文件 。
- 2、AIDL工具会将所有的 .aidl文件编译成.java文件。
- 3、JAVAC工具将R.java、AIDL接口生成的java文件、应用代码java文件编译成.class文件;
- 4、dx 脚本将很多.class文件转换打包成一个.dex文件。
- 5、apkbuilder 脚本将资源文件和 .dex 文件生成未签名的 .apk 文件。
- 6、jarsigner 对apk进行签名。
- 7、zipalign 优化APK
这些构建中使用的工具或者脚本,在SDK的build-tools或者 tools 下可以找到。
3.真实的工具列表
二、完整的 apk 都包含什么?
-
APK 文件构成
名称 描述 AndroidManifest.xml 程序全局配置文件 classes.dex 安卓 Dalvik 字节码 resources.arsc 资源索引表
解压缩 resources.ap_就能看到res\ 资源文件(图片、文本、xml布局) 目录 META-INF\ assets\ 配置文件目录 lib\ 应用程序所依赖的库目录 lib\ 应用程序所依赖的库目录
-
如下图示
-
其它解析
Dalvik是Google公司自己设计用于Android平台的虚拟机
二、编译前app工程结构?
1.aapt
代码如下(示例):