我们在组件化的过程中会涉及两方面的组件,一方面是功能组件,一方面是业务组件,功能组件一般包含网络请求组件、存储组件等,业务组件就包括登录组件、个人中心组件等。我们今天主要说一下网络请求组件中的Flavor问题。
首先,Flavor的作用:Flavor在我们这边用来区分地址,比如说测试环境的地址是http://www.test.com,生产环境的地址是http://www.product.com,一般我们在测试环境开发,然后验证完之后上生产环境。我们不能每次都在代码里写死这个地址,这样太容易出错了,因此使用Flavor来控制,然后在Android Studio中通过Build Variants来控制,最后打包的时候也可以选择是测试环境还是生产环境。
接着,Flavor的在组件化中的使用规则:
- 组件化的每个组件可以根据情况选择配置Flavor或者不配置
- 如果A依赖B,A配置了Flavor,B可以不配置
- 如果A依赖B,B配置了Flavor,A必须配置对应的Flavor
简单说来,就是我们网络请求组件配置了Flavor,那么其它的业务组件,只要依赖了网络请求组件,那么都必须配置Flavor。
最后再说一下读取配置:我们是在project目录下又一个config文件夹,里面配置了很多的东西,不仅仅是网络环境,还涉及一些第三方的KEY。最开始我们是统一在APP中读取配置,因为组件化,这里不得不拆开,最后我们的做法是保留此文件夹以及里面的内容不变,但是不同的组件读取不同的内容,网络框架组件就读取网络地址相关的配