APK 是 Android PacKage 的缩写,即 Android 安装包。
APK 文件其实是 zip 格式,但后缀名被修改为 apk ,在 windows 上可以通过 winrar 等程序直接解压查看。
解压 apk 后,一般的可看到的目录结构如下:
这里资源文件时相对比较重要的, sdk 文档 ( 中文指南 ) 上有相关的详细介绍:
Android 应用程序的生成过程,输入就是我们在 eclipse 或源码中监理的工程及其下面的源文件。输出就是处理后的 apk 文件。整个过程可以如下图所示:
整个过程的第一步,资源打包的工作,就是 aapt 这个工具完成的。
- 在最后打包的 apk 中,所有的 xml 文件已经不是原来的文本文件了,是被 aapt parser 后,直接保存下来的 xml 数据结构,这样做的一大好处就是:到手机中无需再次 parser xml 文件,直接读到定义好的数据结构中就可以了。
drawable 中的 png 图片也被 aapt 给优化过了。
所有的资源文件都被自动生成一个索引,并生成到 R.java 中。为什么这么做?我想一个是效率,另一个好处就是最大限度的在编译过程中由编译器给你找错 ( 通过 string 来索引很难做到 ) 。