我们下载了一个微信apk。当然和所有的apk的内容结构是一样的。请见如下的图。
assets文件夹 :里面存放的是各种各样的资源目录,有字体图片,音乐动图等等,程序在执行的时候要调用的各种各样的资源文件。
lib文件夹:是动态库目录,一般存放so文件。 So文件是Unix的动态连接库,是二进制文件,作用相当于windows下的*.dll文件,在安卓项目中调用动态文件*.so都是通过JNI的方式,加载SO文件提供的API。
META-INF文件夹:存放了APK文件的基本信息和签名信息,用来保证APK文件的完整性和系统的安全。
res文件夹:资源库目录 一般存放xml布局文件和图标
AndroidMainifest.xml :配置清单(二进制格式)
classes.dex:安卓系统上的可执行文件,也是我们逆向的主要的文件,源码都被编译在里面,如有多个是因为每个dex里最多存放65535个方法,而项目的方法数超出了这个数量,所以被分成多个保存
resources.arsc:资源索引文件,包含语言包,汉化的话一般是反编译这个文件。