开发、准生产、生产多服务器,需要不同的 URL,打包时需要切换
第一步:
首先打开 module 的 build.gradle
在 android 根中添加下面的代码
productFlavors { dev { resValue "string", "app_name", "sumile_dev" } userTest { resValue "string", "app_name", "sumile_test" } online { resValue "string", "app_name", "sumile_online" } }
其中 dev、userTest、online 等名字以及个数都可以改变,大小写不限(但是不可以使用 test)
productFlavors 通常是指同一软件的不同版本,比如收费版,免费版。这个版本的逻辑肯定是不一样的。它会自动将不同版本的代码分别和通用代码进行组合,根据上面的配置打包成不同的包。
关于 productFlavors 详细的介绍,参考这里的官方文档或我保存的这份 (product-flavors)(没法翻墙的话)
根据上面的介绍,其实可以想到,我们要做的切换 url 打包,其实就类似于多个不同的版本,版本与版本之间请求的服务器的地址是不同的
第二步:
首先打开 src 目录,在 src 目录下按照第一步中的三个版本的名字新建文件夹
之后在其中一个文件夹下面新建一个文件夹 [java],java 下面新建包,包名可以和你 main 下面的不同
然后复制 java 目录到其他文件夹下面 (本例中为 dev 和 online)
最终结果如下:
从图中可以看到,userTest 文件夹下面的代码被识别成了 java, 而其他的两个没有被识别到。
你连着手机点运行的时候,这里被识别成 java 的代码就会是当前使用的代码,另外两个不会被使用到,如果你想要切换使用的代码,只要在 Build Variants 中切换就好了
另外要着重注意的是:
如果 main 文件夹下的 package 名和你新建的 package 名相同的话,同目录下不要有相同的文件
接下来在每个 Config.java 中定义它们不相同的地方,比如下面我把它们每个 url 都加上了它们的版本的名字
然后就正常使用就可以了
接下来打包
按住 shift 可以都选择了,finish 完成,就可以打出来三个包了
调试微信—每次必须打包再测的烦恼
module 的 build.gradle 的 android 下面添加如下代码:
signingConfigs { debug { storeFile file("../keystore.jks") storePassword "123456" keyAlias "sumile" keyPassword "123456" } }
路径可以根据相对或绝对路径去匹配,推荐还是相对路径(使用 Mac 和 Windows)
这样配置的话,以 debug 模式运行的时候用的就是配置的 keystore 了
转载请注明:热爱改变生活.cn » Android Gradle 的一些简单配置,让开发更简单
本博客只要没有注明“转”,那么均为原创。 转载请注明链接:sumile.cn » Android Gradle 的一些简单配置,让开发更简单