APK文件夹

Assets 文件夹

Assets 文件夹中一般用于存放外挂的一些文件,很多安装包中含有子包的情况,都是讲 apk 文
件存放于这个目录中,在程序运行起来后再进行调用安装,按照 Android 的官方文档介绍,放在这个目录下的文件,不会被赋予 resourceid,访问这些文件时,不能使用 R.class 或者 xml 的资源文件的形式,可以通过 Asset Manager 直接从文件系统访问的方式来读取文件内容。Lib 文件夹中,主要是用来存放一些库文件,一般都是 so 文件的形式,主要是使用 C/C++语言基于 Android ndk 开发的一些动态库。

META-INF 文件夹

META-INF 文件夹中一般用来放置签名相关的内容,在安装时会被 Android 系统自动检测,分析 APK 的合法性。
MANIFEST.MF 文件中存放的是包中各个文件通过散列算法计算得到的结果ANDROID.SF 文件中是对摘要信息进行私钥签名之后得到的新的结果信息,
ANDROID.RSA 存放的是公钥及算法等信息内容。

res 文件夹

res 文件夹中主要是存放各种资源文件信息,包括一些图片、图标、字符串定义等,所有此目录下的资源都会被系统分配相应的 resourceid,可以通过代码 R.class 和 xml 资源文件引用。res 下有多种资源和内容,如图片,布局配置,资源配置等等。对于二次打包而言,直接能做的修改和编辑工作基本在这个目录下。软件本地化工作的主要工作原理就是将 res 目录下资源配置文件中的其他语言串修改为本地语言,比如中文。

classes.dex 文件

classes.dex 文件是将源程序初步编译后,以中间语言形式生成出来的待解释执行文件。Dex 即 Dalvik 可执行程序,它是运行在 Dalvik 中的,由其解释执行的,反编译它可以得到 smali 源码,借助相关工具可以进一步转换成 java 源码。dex 文件格式是基于 class文件格式基础上的改进,多个类可以存储在一个 dex 文件中,一个 dex 文件由 header,String_ids,Type_ids,Proto_ids,field_ids,method_ids,class_defs,data 等八个部分构成。

猜你喜欢

转载自blog.csdn.net/uncle_gy/article/details/79587395