安卓build.gradle的配置应用场景

本文探讨了如何使用build.gradle配置文件管理安卓应用的研发、测试和上线环境,包括切换API域名、修改Manifest配置及混淆设置。通过产品风味配置实现不同环境的区分,避免注释代码带来的风险,并介绍了在不同构建类型中动态修改Manifest和混淆规则的方法。
摘要由CSDN通过智能技术生成

前言

这篇文章是记录在开发过程中,针对研发、测试、产品来构建不同的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.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值