android app 打包流程

android app 打包流程,第1张

App 打包

aapt是android中的资源打包工具,打包资源就用它。

打包大致流程:

aapt把resources目录下的资源生成R.java文件,并为AndroidManifest.xml生成Manifest.java类。

aidl把项目中自定义的aidl文件生成对应的java类。

JavaCompiler把所有的Java源文件编译成class文件,包括:aapt生成的、aidl生成的、项目中自有的java源文件

使用proguard混淆,并生成一个proguardMapping.xml文件(可选项:可以混淆也可以不混淆)

使用dex工具把所有的class文件生成.dex文件

使用aapt资源打包工具把resources、配闹橡assets目录下的资源打包成一个_ap文件

使用apkbuilder把所有的dex、_ap文件、AndroidManifest.xml文件打包成一个未签名的apk

使用jarsinger生成一个签名过的培旁弯氏apk包

使用zipalign工具对要发布的apk文件进行对齐 *** 作,以便在运行时节约内存。

打包后的apk是一个压缩包,解压之后,内容如下:

详细可参考 apk签名原理

无论我们怎么配置gradle文件去自定义打包,但是都是要走上图所画的七个流程。七个深绿色的椭圆代表了七个不可或缺的打包步骤,并且每一个步骤都一个打包工具

所用到的工具:

zipalign 字节对齐:

为什么要以4字节整数倍为起始偏移?

在文件对齐后, 就可以使用mmap来直接读写apk文件

mmap映射

上面涉及到的Android打包流程是以gradle task链的形式串联起来的。

下面看一下常见的task

我可以想到的:

Transform API

https://www.jianshu.com/p/a134d00e81ab

https://www.jianshu.com/p/fffb81688dc5


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8221268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存