概述
每当发新版本的时候,Android客户端会分发到各大市场,比如:豌豆荚,91,小米等。为了统计这些市场的效果(活跃度,下载量等),需要有一种方法唯一标识它们。
每次发版本,产品部都会提供一个渠道列表,Android开发者会根据这些渠道相应地生成渠道包,随着渠道越来越多,客户端如果都是机械手动去打的话,会累死,程序猿都是聪明而懒惰的,客户端打渠道包的方法一直在演进和提高。
从美团技术博客上有一篇介绍自动打包的博文,结合我自己的项目,我就对META-INF自动化打包作一下描述。
我们首先需要用工具(IDE、maven、ant等等)打一个签名包,这个包作为母包,用来打各个渠道包用。这个包我们用解压缩工具打开,发现根目录会有一个META-INF目录,如下图所示
添加空文件
如果在META-INF目录内添加空文件,可以不用重新签名应用。因此,通过为不同渠道的应用添加不同的空文件,可以唯一标识一个渠道。
首先建立一个空目录(这边命名位packages), 将上面生成好的签名包拷贝至packages
在packages目录下新建一个渠道包配置文件(命名为channel_cfg),每个渠道id为一行,如下:
1 | 360 |