[Apk]打包流程

Apk结构
在这里插入图片描述
各文件作用
lib:放so动态库,apk打包过程中不需要对so进行处理;
META-INF:签名文件,里面有三个签名文件,有MANIFEST.MF就是对每一个文件的SHA-256-Digest,CERT.SF就是对每个文件的头三行进行的SHA-256-Digest,CERT.RSA就是保存签名和公钥证书;
class.dex:就是android上可执行文件;
AndroidMenifest.xml:记录应用的名字版本权限组建信息;
res:资源文件;
resource.arsc:编译后的二进制资源文件,记录了应用所有的资源目录信息,包括每一个资源的名称类型值ID,是一个索引文件。
Apk打包流程
在这里插入图片描述 aapt: 打包资源文件 打包res资源文件,生成R文件,resource.arsc文件,以及res文件夹 aidl处理:生成java文件 Java Compile:对项目所有java文件以及r文件.aidl文件,都会生成.class文件 dex:把所有的class文件和第三方库的class文件打包成. dex文件; Apkbulder:把上面的res文件夹,resource.arsc,assert文件,lib文件,class.dex文件,AndroidMenifest文件打包生成未签名的apk文件 Jarsigner:对apk文件签名; Zipalign:对齐,主要是把apk包中所有的资源文件距离文件的起始偏移为4字节整数倍,这样通过映射访问apk文件速度会更快,会减少运行时内存的使用。