Android 应用由 Java 编写,利用 Android SDK 编译。Android 应用的 APK(Android Package)安装文件是一个包含所有代码和资源文件的压缩包。解压这个包,我们可以看到以下结构:
- 列表内容 asserts 目录:静态文件
- lib 目录:应用依赖的 native 库
- res 目录:资源文件
- META-INF 目录:签名文件
- AndroidManifest.xml:配置文件
- classes.dex:Dalvik 字节码
- Resources.arsc:资源配置文件
(1)asserts 目录:存放需要打包到 APK 中的静态文件,不同于 res 目录,asserts 支持任意深度的子目录,用户可以任意部署文件夹的架构。注意,asserts 目录中的文件不会在 .R 文件中自动生成资源id,需要通过 AssertManager 类进行访问。
(2)lib目录:存放应用依赖的 native 库文件,一般用 C/C++ 编写。lib 目录根据 CPU 型号的不同,可能包含四种文件夹:ARM,ARM-v7a,MIPS,X86,分别对应 ARM 架构,ARM-v7a 架构,MIPS 架构和 X86 架构,其目录结构如下: