原创
背景:android项目都会用到网络请求,网络请求需要url,然而我们最普遍的方式是把url放到某个类的代码中用一个String表示。那么问题来了,项目整个过程会需要很多环境,例如内测url,外测url,正式url等等。这时我们要根据需要打出不同url的apk,只能定义很多String,把用到的放开,不用的注释掉。
然而,这样我们每次打包都需要改动代码,并要保证选择正确,完事还要还原回来。如果要一次性把所有环境的包打出来,我们要重复操作很多次。很麻烦的。
那怎样能不改代码的情况下,预先配置好各种环境,需要哪个就选择哪个环境打包,并可以一次性打出所有环境的包呢?
方案:androidStudio自带的功能就有。
步骤:
1配置签名
2配置buildTypes
buildtypes 中的配置主要是关于打包方式的不同,例如debug打出来的包只能通过studio直接运行到手机上,而不能手动安装到手机上,否则会提示你test only。
buildtypes 的配置可在studio中project structure 按钮中。
3配置productFlavors
这一步是真正配置url的地方。
4使用url
我们的url配置已经完了。那我们代码中如何使用呢?
那么这里的BuildConfig类是什么呢?从哪来?
可以看到,总体思路就是通过gradle的配置,让这个自动生成的BuildConfig类中生成我们想要的字端。
5如何选择我们要生成什么样的BuildConfig?
其实就是studio中的一个选项。
选择一个变种后,我们直接run出来的就是这个环境的包。同时我们可以执行build命令打出所有环境的包。
5打出的apk在哪呢?
我只截了关键截图,希望大家在实践中体会每个配置的影响。很简单很实用。