返回

一文看懂Android APK的诞生,只有两张图就够了

Android

国庆长假期间,和朋友聊天说起了Android的安装过程,顺带提到了.apk文件的构建过程。作为一个在Android领域打滚多年的老鸟,我还以为这点小知识人人都知道呢。不曾想朋友压根就没听过.apk文件是如何生成的,于是我打开了电脑和项目,一边说一边给他演示了一下。

既然决定要演示了,总不能让他看我的屏幕吧?所以我一边演示一边截图,最后整理成了这两张图。
这张是APK构建的流程图,也是编译Android项目的全流程,总共分为四个步骤:

1.编译Java/Kotlin代码:在这一步,Android编译器会将Java/Kotlin代码编译成字节码,并将其存储在.class文件中。

2.打包资源文件:在这一步,Android打包工具会将资源文件(如布局文件、图片文件、字符串文件等)打包成一个资源包(.arsc文件)。

3.合并字节码和资源:在这一步,Android打包工具会将.class文件和资源包合并成一个.dex文件,其中包含了所有应用程序的代码和资源。

4.生成APK文件:在这一步,Android打包工具会将.dex文件和其他一些文件(如清单文件、签名文件等)打包成最终的APK文件。

然后,整理这些步骤之后,我发现其实可以用一个更直观的流程图来表示,如下图所示。
这张流程图就更加直观了,而且更加简洁。因此,后面我准备就按照这张流程图来说明APK的构建过程。

                        +------------+
                        |  Java/Kotlin |
                        +------------+
                            |
                            V
                        +-------------+
                        |   Android   |
                        |  Compiler  |
                        +-------------+
                            |
                            V
                        +------------+
                        |   Dex      |
                        |  Builder  |
                        +------------+
                            |
                            V
                         +------------------+
                         |   Apk     |     |
                         |  Packager    |     |
                         |              |     |
                         +------------------+

好了,以上就是Android APK的构建过程的全部内容了。