VasDolly 是腾讯出的一款为 Android app 构建渠道包的 Android Studio 插件。安装之后,在 project 的 gradle 构建脚本中,编写相关的任务配置后,就可以通过 gradle 执行对应的任务了。
它支持的配置有两种风格。一种是写到 channel 配置块中,这种方式,渠道包的源是当前 project 正常构建之后生成的 apk 文件,渠道包的构建是后面的自然延续环节,平滑顺畅,没有什么特别的地方。另一种是写到 rebuildChannel 配置块中。这种方法其实已经和当前 project 的关联不大,属于比较独立的一种工具性质的构建阶段。配置中指定一个 apk 源包(或者可以称作基础包),当然还有渠道列表,然后执行 rebuildChannel 任务即可。
三太爷想扩展的就是第二种方式。在老夫眼里,它是个半成品,对需求的挖掘不足,正好在实践中满足不了需要,所以决定增强改造一下。主要原则有以下两条,
- 首先,当然是要全面兼容当前的已有用法;
- 其次,以一种不太违背原有设计理念的风格进行功能扩展;
- 尽量简单地实现;
原来支持单一 apk 的属性值名称为 baseApk,如果要增加对多个 apk 的支持的话,显然需要能指定一组 apk,而且,每一个 apk 要能指定属于它的一组渠道信息。一种方式是使用两个数组/列表,分别存放 apk 文件名,以及渠道文件名。另一种方式是使用一个数组/列表,其中的元素为 apk 文件名与渠道列表文件名的组对。最后选择了后者,主要是为了减小对两组数据的有关对齐之类的数据验证需要,尽管这种需要也只不过是主要存在于感觉上。
确定了这个之后,下一步就是增改代码了。容后再叙。