前言:今天的文章挺简单的,也是最应该在最开始写的内容,就是简单的说明一下apk的编译打包流程,只是今天刚想到这个事。想要了解apk的打包流程的同学可以看看该篇文章。
.apk文件
.apk文件其实就是一个压缩文件,把文件的后缀改成.zip就可以用windows解压软件解压了,解压后里面的文件如下:
上图里面都是什么文件:
-
lib 文件夹里面存放的是so动态链接库,so动态链接库是不需要在做apk打包时一系列压缩处理的。
-
META-INF 签名文件夹,里面存放三个文件,有两个是对资源文件做的SHA1 hash处理,一个是签名和公钥证书。
-
res 资源文件夹,里面还会分animator,anim,color,drawable,layout,menu和raw这几个文件夹。
-
AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)。这个文件是很重要的,里面有我们的Android四大组件和申请的权限。
-
classes.dex Android平台上的可执行文件,Android虚拟机Dalvik支持的字节码文件格式Google在新发布的Android平台上使用了自己的Dalvik虚拟机来定义, 这种虚拟机执行的并非Java字节码, 而是另一种字节码: dex格式的字节码。在编译Java代码之后,通过Android平台上的工具可以将Java字节码转换成Dex字节码。虽然G