点击 Android Studio 的 build 按钮后发生了什么?
如图 1 所示,典型 Android 应用模块的构建流程通常按照以下步骤执行:
-
编译器将您的源代码转换成 DEX 文件(Dalvik 可执行文件,其中包括在 Android 设备上运行的字节码),并将其他所有内容转换成编译后的资源。
-
APK 打包器将 DEX 文件和编译后的资源合并到一个 APK 中。不过,在将应用安装并部署到 Android 设备之前,必须先为 APK 签名。
-
APK 打包器使用调试或发布**库为 APK 签名:
- 如果您构建的是调试版应用(即专用于测试和分析的应用),则打包器会使用调试**库为应用签名。
- Android Studio 会自动使用调试**库配置新项目。
如果您构建的是打算对外发布的发布版应用,则打包器会使用发布**库为应用签名。要创建发布**库,请参阅在 Android Studio 中为应用签名。
-
在生成最终 APK 之前,打包器会使用 zipalign 工具对应用进行优化,以减少其在设备上运行时所占用的内存。
构建流程结束时,您将获得应用的调试版 APK 或发布版 APK,以用于部署、测试或发布给外部用户。
简单点说:
- 将源代码(包括 Application Module 和 Library Module)编译成 class 文件,再将所有的 class 文件(包括第三方库中)打包生成 dex 文件。
- 解压所有 aar 包中的资源文件,并和项目中所有资源文件合并到一个目录。
- 生成资源文件的索引文件。
- 最后将所有的dex文件和已编译的资源文件,打包生成.apk文件。