前言
这篇文章是记录在开发过程中,针对研发、测试、产品来构建不同的APK的应用场景。
应用场景一:公司有研发、测试、上线的域名,应该如何切换配置?
在工作中,我们有这样的需求:要求研发、测试、上线调用的api的域名需要区分开来。相信有些同学是通过注释掉代码来切换环境,就像这样:
// public static final String BASEURL = "http://domainDev.com";//dev
// public static final String BASEURL = "http://domainTest.com";//test
public static final String BASEURL = "http://domainRelease.com";//release
这种方式有很大的风险,如果发版APK中忘记将注释修改回来,会导致不可预估的错误。对于基础配置官网给我们提供了一个建议《配置构建变体》,可以通过Application的插件,配置不同的产品风味,根据风味区分域名配置,下面我就来讲解一下通过这篇文章的原理构建我切换域名的逻辑。
app/build.gradle
android{
....
productFlavors {
dev{
//研发
buildConfigField "int", "buildTypeInt", "1"
dimension "dev"
}
devTest{
//测试
buildConfigField "int", "buildTypeInt", "2"
dimension "dev"
}
prod{
//发布
buildConfigField "int", "buildTypeInt", "3"
dimension "dev"
}
}
buildTypes {
debug {
}
release {
}
}
}
通过上面的配置,我们分别配置6(3*2)个不同的打包流程。在AS中的左边导航栏出现。

通过buildConfigField "int", "buildTypeInt", "1"代码,可以在项目的BuildConfig类中生成buildTypeInt的静态变量。
package com.dustess.dustessassistant;
public final class BuildConfig {
...
public static final int buildTypeInt = 1;
}
通过此变量就切换我们的域名了。
private static String getServiceUrlInternl() {
switch (BuildConfig.buildTypeInt){
//开发 目前测试开发一套环境
case 1:
SERVICE = "http://domainRelease.

本文探讨了如何使用build.gradle配置文件管理安卓应用的研发、测试和上线环境,包括切换API域名、修改Manifest配置及混淆设置。通过产品风味配置实现不同环境的区分,避免注释代码带来的风险,并介绍了在不同构建类型中动态修改Manifest和混淆规则的方法。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



