0. 前言
apk 全称是Android应用程序包(Android application package),一种能被Android系统识别并运行的文件格式。
apk 文件基于 zip 文件格式,它与 jar 文件的构造方式相似。
在总结 apk 的打包流程之前,先要了解一下一个 apk包 究竟有哪些文件:
- classes.dex 文件:java源文件经过编译和转换后生成的二进制的字节码文件。
- resource.arsc 文件:经过 aapt 编译后的二进制的资源文件。
- AndroidManifest.xml 文件:经过 aapt 编译后的二进制的 xml 文件。
- res 文件夹:除图片和 res/raw 文件夹下的文件外,其余的 xml 文件都被 aapt 编译成二进制的 xml 文件。
- assets 文件夹(可选):存放不进行编译的原生文件,可以是一些图片,或者是html、js、css文件。
- lib 文件夹(可选):存放应用程序依赖的 native 库文件,一般是用 c/c++ 编写,如 so 文件。
- META-INF 文件夹:存放签名信息。
1. 官方流程图