开发 Android 应用后,一般都会安装到手机上去运行,了解应用是如何安装到手机上的,可以更好的理解应用的本质,理解应用是如何运行的,在自己开发的应用遇到一些问题时,会从更深层次去分析,快速定位找到原因。这一篇文章中我们就来详细分析一下应用是如何安装的。
背景知识
要想详细了解 APK 的安装过程,需要了解一些基础概念,包括:
- 什么是 APK
- 什么是 DEX 文件和 ODEX 文件
- 什么是 OAT 文件
- 什么是 Dalvik 和 ART
总体来说是:APK 是 Android 应用安装包,Dalvik 和 ART 都是 Android 运行环境,但是由于 Dalvik 存在一些不足,ART 是在高版本手机上替换 Dalvik 的。应用的安装过程就是将 APK 中内容解压处理的过程,Dalvik 会将 APK 中内容 DEX 转化为 ODEX,ART 会将其转化为 OAT。下面对这些问题分别进行分析。
什么是 APK
APK,即 Android Package,Android 安装包。不同平台的安装文件格式都不同,类似于 Windows 的安装包是二进制的 exe 格式,Mac 的安装包是 dmg 格式。APK 的可以在 Android 上执行安装,APK 的本质是一个 Zip 压缩包,只是后缀被修改为 apk,其中打包了源代码编译出的 class.dex、一些图片视频资源文件和一些 Native 库文件。APK 文件与 Zip 文件最大的一个不同是 APK 包含签名信息,用于保证安装包安全不被修改。