[Android]安卓开发中,如何自动切换不同环境下的URL

目的:开发环境和生产环境使用不同的URL,并实现自动切换
步骤:
1、设置modulesflavors

image.png

2、设置成功后modulesbuild.gradle文件中会出现下面的代码

productFlavors {
      product {
      }
      dev {
      }
  }

Android studio左边Build Varians中会出现下面的选项:

image.png

3、appBuild Variant选项中会出现4个选项devDebugdevRealseproductDebugpeoductRelease。如果想去除其中的某个的话,可以在build.gradle中这么设置,比如我想去除devRelease这个选项:

variantFilter { variant ->
        def names = variant.flavors.name
        def buildType = variant.buildType.name
        if (names.contains("dev") && buildType == "release") {
            setIgnore(true)
        }
    }
image.png

没有release选项了

4、上面设置了3中环境,实际上只是生成了BuildConfig.java文件,

image.png

接下来在代码中对环境进行判断

public class APIConstant {
        
    public static String BASE_URL = "https://xxxxxx";
    

    static {
        if (BuildConfig.FLAVOR != null && BuildConfig.FLAVOR.equals("dev")) {
            BASE_URL = "http://xxx_xxx_x/frontend";     //如果是生产环境,则重新赋值
        }
    }

    public static final MediaType MEDIA_TYPE_JSON = MediaType.parse("application/json");
}

注:这种方式还可用于多渠道打包

Android Studio中包名为build.gradle中的application id,可以和manifest.xml中的不一致,manifest.xml中的包名仅作为R文件的包名

image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,542评论 2 59
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,835评论 25 709
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,221评论 6 342
  • Android组件化项目地址:Android组件化项目AndroidModulePattern Android组件...
    半灬边灬天阅读 8,000评论 4 37
  • 小时候 故乡是一条欢快的直线 始点是 喜且怕的学校 终点是 慈母手中的一日三餐 少年时 故乡是一张精美的车票 一端...
    娑婆如斯阅读 5,488评论 8 143

友情链接更多精彩内容