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 = []
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章