Android 配置不同的开发环境debug,release,develop等.

public class APIConfig {
    /**
     * 测试环境,开发环境,staging环境所用的值
     */
    public static final String DEV_APP_ID = "100001";
    public static final String DEV_APP_KEY = "f23bcf2ac8d3";
    public static final String DEV_APP_SECRET = "f1e6612206a1428a822f215e83bf8c4e";
    /**
     * 线上环境所用的值
     */
    public static final String RELEASE_APP_ID = "100001";
    public static final String RELEASE_APP_KEY = "1d94532d85a1";
    public static final String RELEASE_APP_SECRET = "1b397defcc2d4a9298ae05bc8a636d05";
    /**
     * 开发环境 与build.Gradle里对应.
     */
    private static final byte ENV_DEVELOP = 0x00;
    /**
     * 测试环境
     */
    private static final byte ENV_DEBUG = 0x01;

    /**
     * 查重微服务接口
     * 适用于采集人信息上传,获取查重异步任务结果,查重错误反馈
     */
    /**
     * 正式环境
     */
    private static final byte ENV_RELEASE = 0x02;
    /**
     * 开发接口
     */
    private static final String BASE_COMMENT_DEV_URL = "https:xxxxxx";
    /**
     * 测试接口  https://api-beehive-test.zzcrowd.com.cn/collect/
     */
    private static final String BASE_COMMENT_TEST_URL = "https:xxxxxx";
    /**
     * staging接口
     */
    private static final String BASE_COMMENT_STAGING_URL = "https:xxxxxx";
    /**
     * 线上接口
     */
    private static final String BASE_COMMENT_PROD_URL = "https:xxxxxx";
    /**
     * 开发接口
     */
    private static final String BASE_BEEEYE_DEV_URL = "https:xxxxxx";
    /**
     * 测试接口
     */
    private static final String BASE_BEEEYE_TEST_URL = "https:xxxxxx";
    /**
     * staging接口
     */
    private static final String BASE_BEEEYE_STAGING_URL = "https:xxxxxx";
    /**
     * 线上接口
     */
    private static final String BASE_BEEEYE_PROD_URL = "https:xxxxxx";
    //单例模式
    private static APIConfig instance = null;
    private String API_COMMENT;
    private String API_BEEEYE_COMMENT;
    private String APP_ID;
    private String APP_KEY;
    private String APP_SECRET;

    private APIConfig() {
        switch (BuildConfig.API_ENV) {
            case ENV_DEVELOP:
                setParams(BASE_COMMENT_DEV_URL);
                setBeeEyeParams(BASE_BEEEYE_DEV_URL);
                setAPPConfig(DEV_APP_ID, DEV_APP_KEY, DEV_APP_SECRET);
                break;
            case ENV_DEBUG:
                setParams(BASE_COMMENT_TEST_URL);
                setBeeEyeParams(BASE_BEEEYE_TEST_URL);
                setAPPConfig(DEV_APP_ID, DEV_APP_KEY, DEV_APP_SECRET);
                break;
            case ENV_RELEASE:
                setParams(BASE_COMMENT_PROD_URL);
                setBeeEyeParams(BASE_BEEEYE_PROD_URL);
                setAPPConfig(RELEASE_APP_ID, RELEASE_APP_KEY, RELEASE_APP_SECRET);
                break;
        }
    }

    public static APIConfig getInstance() {
        if (instance == null) {
            instance = new APIConfig();
        }
        return instance;
    }

    /**
     * 是否是正式环境
     *
     * @return
     */
    public static boolean isReleaseBuild() {
        return BuildConfig.API_ENV == ENV_RELEASE;
    }

    private void setParams(String conmment) {
        API_COMMENT = conmment;
    }

    private void setAPPConfig(String AppID, String AppKey, String AppSecret) {
        APP_ID = AppID;
        APP_KEY = AppKey;
        APP_SECRET = AppSecret;
    }

    private void setBeeEyeParams(String params) {
        API_BEEEYE_COMMENT = params;
    }

    public String getBaseCommentUrl() {
        return API_COMMENT;
    }

    public String getBeeEyeCommentUrl() {
        return API_BEEEYE_COMMENT;
    }

    public String getAppID() {
        return APP_ID;
    }

    public String getAppKey() {
        return APP_KEY;
    }

    public String getAppSecret() {
        return APP_SECRET;
    }
}

APP的gradle配置里

buildTypes {
    develop {
        minifyEnabled false
        buildConfigField "byte", "API_ENV", "0x00"
        signingConfig signingConfigs.release
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    debug {
        minifyEnabled false
        buildConfigField "byte", "API_ENV", "0x01"
        useProguard true
        signingConfig signingConfigs.release
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    release {
        minifyEnabled false
        buildConfigField "byte", "API_ENV", "0x02"
        shrinkResources false
        signingConfig signingConfigs.release

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    sourceSets.main {
        jniLibs.srcDir 'libs'
        jni.srcDirs = []
    }
}

猜你喜欢

转载自blog.csdn.net/qq_39792615/article/details/107085747