三种高效的多渠道打包方式Android项目本身是开源的,大家都可以去研究任何现实,基于这个特征,一种叫做“android黑科技”的科学迅速诞生。以下介绍的多渠道打包方式都应该属于其范畴。 [添加comments多渠道打包] 首先解释什么是comments(注释或评论)的打包方式? Android应用使用的Apk文件就是一个代签名信息的zip文件,根绝zip文件格式规范(参见:https://pkware./webdocs/casestudies/APPNOTE>TXT),每个文件的最后都必须有一个叫Central Directory record(https://users.cs./buchhofp/forensics/formats/pkzip.html)的部分,这个cdr的最后部分叫“End of Central Directory Record”,这一部分包含一些元数据,它的末尾是zip文件的注释。注释包含Comment Length和FileComment俩个字段。前者表示注释的长度,后者表示注释的内容,正确修改这一部分不会对zip文件造成破坏,利用这个字段,我们可以添加一些自定义数据。 简单来说就是:我们利用文件的zip文件“可以添加comment(摘要)”的数据结构特点,在文件末尾写入任意数据,而不用从新解压zip文件(apk文件就是zip文件格式);所以该工具不需要对apk文件解压从新签名即可完成多渠道自动打包,可谓高效,速度快,无兼容问题。 【美团的android多渠道打包】 美团点评技术团队(原美团技术团队)有一个公开的博客,每篇文章都在领域内有一定影响。其中就有一篇就是讨论“如何高效地进行android多渠道打包?”可参见:http://tech.meituan.com/mt-apk-packaging.html。 文章中首先提到了ApkTool的多渠道打包方式,然后讲到美团的业务发展到已经有900多个渠道,ApkTool的方式已经不能支付这种规模的多渠道打包。所以美团点评技术团队开始探索一种更加高效的多渠道打包方式。 美团的做法是把一个android应用包当作自拍文件包进行解压,然后发现在签名生成的目录下添加一个空文件不需要从新签名。利用这个机制,该文件的文件名就是渠道名。这种方式不需要从新签名等步骤,非常的高效。 [豌豆荚android多渠道打包] 豌豆荚的多渠道打包方案和美团的所用的方式一样,都是添加一个文件,文件本身会带入渠道消息。但不同点在于它添加的是一个不为空的文件。之前提到过了,如果添加一个非空文件,就会破坏签名校验,需要从新签名。 从这个方案可以看出,豌豆荚多渠道打包和美团多渠道打包正好利用了一个特征的俩个方面。当然,如果需要从新签名,效率会差一些。在失去效率的同时,拥有了更加安全的渠道管理。 |
|
来自: seo菜鸟shcimfv > 《软件开发》