android gradle构建版本

在实际开发中,网络请求的根域名通常是不同的版本对应不同的服务器,比如我们现在分为开发、测试、预发布和正式,四个环境,以前是手动注释代码来更换环境,每次要操作很多,万一遗漏一处,可能就会出现问题。最好的方法就是根据不同的版本,自动构建相应的环境,这样就不会出现由于人为因素导致的问题。
module中的build.gradle的buildType一般如下:

buildTypes {
    debug {
        // 测试环境配置
    }
    
    release {
        // 正式环境配置
    }
}

只有debug和release两个版本,然而我们的环境是四个,于是再增加两个:

buildTypes {
    dev {
        // 开发环境配置
    }
    debug {
        // 测试环境配置
    }
    preRelease {
        // 预发布环境配置
    }
    release {
        // 正式环境配置
    }
}

好,现在我们可以看到在打包的环境,就有4个选项供我们选择了。
在这里插入图片描述
现在问题是,如何根据不同的版本获取不同的设定值。buildTypes 中的buildConfigField 可以帮助我们实现:

buildTypes {
    dev {
        // 开发环境配置
        buildConfigField "String", "BASE_URL", '"http://开发.com/"'
    }
    debug {
        // 测试环境配置
        buildConfigField "String", "BASE_URL", '"http://测试.com/"'
    }
    preRelease {
        // 预发布环境配置
        buildConfigField "String", "BASE_URL", '"http://预发布.com/"'
    }
    release {
        // 正式环境配置
        buildConfigField "String", "BASE_URL", '"http://正式.com/"'
    }
}

buildConfigField参数分别为参数类型、参数名字、参数值。每个module都会根据buildTypes 在build目录下自动生成一个BuildConfig.java的文件:

public final class BuildConfig {
  // ...
  public static final String BASE_URL = "http://api.t1.ctsax.com/";
}

然后我们就可以在java代码中使用了:

/**
 * 描述:网络请求配置类
 */
public final class Config {
    // ...
    public static final String BASE_URL = BuildConfig.BASE_URL;
}
发布了216 篇原创文章 · 获赞 91 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/yu75567218/article/details/101543169