关于android apk打包流程的详解

Android 开发者对于apk再熟悉不过了,但是对于apk是如何生成的,它的打包流程是什么可能还不是很了解。
当然无论是早期Ant或者是目前主流的gradle其实原理以及大致步骤都是一样的。先看下官网的流程图:





主要包括两个过程:

1,编译过程,编译的内容包括本工程的文件以及依赖的各种库文件,编译的输出包括dex文件和              编译后的资源文件。

2,打包过程。配合Keystore对第一步的输出进行签名对齐,生成最终的apk文件。

上图的具体步骤如下:

1,Java编译器对工程本身的java代码进行编译,这些java代码有三个来源:app的源代码,由资源文件生成的R文件(aapt工具),以及有aidl文件生成的java接口文件(aidl工具)。产出为.class文件。

2,.class文件和依赖的三方库文件通过dex工具生成Delvik虚拟机可执行的.dex文件,可能有一个或多个,包含了所有的class信息,包括项目自身的class和依赖的class。产出为.dex文件。

3,apkbuilder工具将.dex文件和编译后的资源文件生成未经签名对齐的apk文件。这里编译后的资源文件包括两部分,一是由aapt编译产生的编译后的资源文件,二是依赖的三方库里的资源文件。产出为未经签名的.apk文件。

4,分别由Jarsigner和zipalign对apk文件进行签名和对齐,生成最终的apk文件。

总结为:编译-->DEX-->打包-->签名和对齐

这篇文章对打包有更加细致的解读:

http://blog.csdn.net/jason0539/article/details/44917745

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值