android 打包多个apk注意事项:

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ruizhenggang/article/details/79738148

在android studio 中打包,您可以使用studio下的菜单进行打包,但是只能是一个个的打包。即你打包几个apk,就要重复操作打包几次。这种打包方式比较简单,我就不多说了。

主要是介绍第二种命令行打包。在android studio中,打开Terminal命令窗口,输入 ./gradlew build  就可以同时打包多个apk。生成的apk目录在你项目下的app->build->outputs-> apks   下。此时你会看到意外的情况。当你打了三种路径的包,此时会出现六个apk文件。为app-release.apk   app-release-unaligned.apk。这边的app-release-unaligned.apk和app-release.apk有什么不同呢?

首先,我们应该明白一点:不管是app-debug.apk 还是 app-debug-unaligned.apk,都是signed apk。

也即是, 

app-debug-unaligned.apk = unaligned signed apk

app-debug.apk = aligned signed apk

aligned apk基于zipalign进行了优化。

为什么为产生unaligned apk ?

其实,unaligned apk只是一个中间产物。

编译过程中,会先产生unaligned apk,之后对unaligned apk进行对齐优化产生 aligned apk。

要知道,Android app签名的流程如下:

--> 生成 private key  (keytool 完成)

--> 编译生成unsigned apk  (状态:未对齐,未签名)

--> 用private key进行签名 (jarsinger完成)  (状态:未对齐,签名)

--> 使用zipalign进行签名 (状态:对齐,签名)

apk只有在签名之后才能使用zipalign进行优化。如果在签名之前就进行align优化,那么在签名时会回退之前的align操作。

因此会先进行签名,在进行align优化。因而中间会产生 unaligned signed apk (app-debug-unaligned.apk).

aligned apk的优势是什么?

aligned apk对ram使用进行了优化,可以减少app运行时的ram占用。



猜你喜欢

转载自blog.csdn.net/ruizhenggang/article/details/79738148