apk结构
Apk文件结构简析
AndroidManifest.xml
文件:类似于 Java EE
应用的 web.xml
的角色,定义了整个应用的运行信息。包括:包名、权限、API 版本、组件等等信息。
classes.dex
文件:包含了应用的整个代码逻辑,其以字节码的形式存在。
lib
目录:包含了应用需要的原生库文件,其主要是从 c/c++ 代码编译而来。
META-INF
目录:主要存储了应用的证书和签名信息文件。
assets
里面保存的是一些原始的文件,可以以任何方式来进行组织,assets目录下的文件不会被编译成二进制,直接被打包到apk中。assets目录中的文件不会在R.java中建立索引。assets目录下的文件需借助AssetManager访问。assets目录下可以建立自己的子目录。
res
res目录下的绝大部分文件会被编译成二进制(res/raw应该除外)。由于res目录下的所有东西都会在R.java中建立索引,可以用Resources.openRawResource方法读取raw中的文件。res/raw目录下不允许建立子目录。
resources.arsc
文件:应用资源文件id映射
其中,我们可以看到,AndroidManifest.xml 、assets目录、res目录、resources.arsc文件,都是跟资源有关。