MT管理器安卓逆向新手教程2:apk结构分析 |
|
旁观者
L21
• 2020-10-01 • 回复 1 • 只看楼主
• 举报
|
大家都应该知道APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构
asset\ <资源目录1:asset和res都是资源目录但有所区别,见下面说明>
lib\ <so库存放位置,一般由NDK编译得到,常见于使用游戏引擎或JNI native调用的工程中>
|---armeabi\ <so库文件分为不同的CPU架构>
META-INF\ <存放工程一些属性文件,例如Manifest.MF>
res\ <资源目录2:asset和res都是资源目录但有所区别,见下面说明>
|---drawable\ |---<图片和对应的xml资源>
|---layout\ |---<定义布局的xml资源>
AndroidManifest.xml <Android工程的基础配置属性文件>
classes.dex <Java代码编译得到的Dalvik VM能直接执行的文件>
resources.arsc <对res目录下的资源的一个索引文件,保存了原工程中strings.xml等文件内容>
asset和res资源目录的不同在于:
1. res目录下的资源文件在编译时会自动生成索引文件(R.java),在Java代码中用R.xxx.yyy来引用;而asset目录下的资源文件不需要生成索引,在Java代码中需要用AssetManager来访问;
2. 一般来说,除了音频和视频资源(需要放在raw或asset下),使用Java开发的Android工程使用到的资源文件都会放在res下;使用C++游戏引擎(或使用Lua binding等)的资源文件均需要放在asset下。