Android的APP是一个以*.apk结尾的压缩文件,将其后缀修改为.zip可以看到apk包的完整结构如下图:
主要包括Java 代码文件:classes*.dex,Native 代码文件:lib目录下面的 .so 文件,资源文件:包括 assets 目录、res 目录以及 resources.arsc 索引表文件。
我们从上到下依次的详细说明:
(1)AndroidManifest.xml:Android项目的系统清单文件,Android应用的四大组件(Activity、Service、BroadcastReceiver 和 ContentProvider )均在此配置和声明,具体介绍请参考本博客相关文章。
(2)assets:用来存放需要打包到 Android 应用程序的静态资源文件,例如图片资源文件、JSON 配置文件、渠道配置文件、二进制数据文件、HTML5离线资源文件等。与res/raw 目录不同的是,assets 目录支持任意深度的子目录,同时该目录下面的文件不会生成资源ID。下图所示是某个 APP 的 assets 目录的内容,例如,countryCode用来初始化App国家数据。