我们知道,在 Android 项目的开发过程中,只需要点一下 Android Studio
的运行按钮,就可以将代码编译好并运行在设备上。相信任何一个 Android 开发者都知道,从我们点击按钮到设备上运行 APP,Android Studio 默默地做了编译、打包(生成 APK 文件)、安装、运行等很多事情,安装和运行不是本文所关心的内容。下面,我们一起来看看,Android Studio 的编译、打包(也可以合并称为构建)过程。
构建流程
先来看下 Android 官网给出的构建流程图:
如图 1 所示,典型 Android 应用模块的构建流程通常依循下列步骤:
编译器
将源代码
(包括 Application Module 及其所依赖的所有 Library 源代码)转换成DEX
(Dalvik Executable)文件(其中包括运行在 Android 设备上的字节码),将所有其他内容
转换成已编译资源
。APK 打包器
将 DEX 文件和已编译资源合并成单个 APK。不过,必须先对 APK 签名,才能将应用安装并部署到 Android 设备上。APK 打包器
使用 Debug 或 Release 密钥库对 APK 签名:- 如果您构建的是 Debug 版本的应用(即专用于测试和分析的应用),`打包器`会使用 Debug 密钥库签名应用。Android Studio 自动使用 Debug 密钥库配置新项目。
- 如果您构建的是打算向外发布的 Release 版本应用,`打包器`会使用 Release 密钥库签名应用。
- 在生成最终 APK 之前,打包器会使用 zipalign 工具对应用进行优化,减少其在设备上运行时的内存占用。
构建流程
结束后,得到可用来进行部署、测试的 Debug APK,或者可用来发布给外部用户的