Android Flavor
为了支持同一套代码能够生成多个版本的应用,Android提供flavor来实现该需求。
Flavor使用
在模块化中新增Flavor
在单一模块的工程中,新增Flavor很简单,但是在多模块的工程中,可能会有诸多问题。根据已经了解的情况,模块的依赖关系可以是一个有向无环图(禁止环形依赖)。在架构图中,一般约定俗成地将被依赖的模块放到下层,依赖其他模块的模块放到上层。
经过实践,发现有如下规律
- 模块化的工程中,不要求所有模块都新增对应的Flavor。例如,对于某些模块,可以区分国内/海外不同版本,但是其他模块可以不区分。
- 被依赖的模块允许不区分flavor。例如A依赖B,允许A区分国内/海外版本,B不区分。
- 被依赖的模块再区分flavor时,依赖它的模块必须区分flavor。例如A依赖B,若B区分国内/海外版本,则A也需要区分。