Android 多环境(生产、测试、开发)多域名网络配置

Product Flavors

build.gradle 配置多个 Flavor

app/build.gradle 文件中配置:

java 复制代码
android {
    flavorDimensions "default"

    productFlavors {
        dev {
            dimension "default"
            applicationIdSuffix ".dev"
            versionNameSuffix "-dev"
            buildConfigField "String", "BASE_URL", "\"https://api-dev.example.com/\""
            buildConfigField "String", "AUTH_URL", "\"https://auth-dev.example.com/\""
        }
        staging {
            dimension "default"
            applicationIdSuffix ".staging"
            versionNameSuffix "-staging"
            buildConfigField "String", "BASE_URL", "\"https://api-staging.example.com/\""
            buildConfigField "String", "AUTH_URL", "\"https://auth-staging.example.com/\""
        }
        prod {
            dimension "default"
            buildConfigField "String", "BASE_URL", "\"https://api.example.com/\""
            buildConfigField "String", "AUTH_URL", "\"https://auth.example.com/\""
        }
    }
}

在 Java 代码中使用 BuildConfig

java 复制代码
public class ApiConfig {
    public static final String BASE_URL = BuildConfig.BASE_URL;
    public static final String AUTH_URL = BuildConfig.AUTH_URL;
}

在 Android Studio 选择不同环境

Build Variants 选择:

  • devDebug
  • stagingDebug
  • prodRelease

这样就可以使用不同的 API 地址了。

相关推荐
w23617346012 小时前
Android多线程通信机制
android·多线程通信机制
每次的天空2 小时前
Android 应用开发:架构重构、性能优化与离线缓存系统实现
android·缓存·性能优化·重构·架构·kotlin
Bonnie_cat4 小时前
Android Framwork 之深入理解 IPC Binder机制
android·binder
syy敬礼6 小时前
Android实现简易计算器
android
CL_IN11 小时前
高效集成销售订单数据到MySQL的方法
android·数据库·mysql
devlei11 小时前
Android JankStats实现解析
android
Vesper6312 小时前
【Android】‘adb shell input text‘ 模拟器输入文本工具使用教程
android·adb
MyhEhud13 小时前
Kotlin apply 方法的用法和使用场景
android·kotlin·kotlin apply函数
Code额13 小时前
MySQL的事务机制
android·mysql·adb
蓝莓浆糊饼干14 小时前
请简述一下String、StringBuffer和“equals”与“==”、“hashCode”的区别和使用场景
android·java