Android環(huán)境配置之使用properties文件

在進(jìn)行環(huán)境切換時(shí)候,我們可以有多種方式,比如

  • 直接適用常量管理類
  • 利用Gradle實(shí)現(xiàn)app的環(huán)境分離
  • 使用配置文件的形式

其中,
第一種方式比較適合環(huán)境穩(wěn)定/單一的情況,如果涉及多種環(huán)境,比如Alpha/UAT/Production等的情況,管理起來就不是很方便了,所以要考慮第二和第三種方式,用Gradle的方式,可以參考Multi-flavor variants,下面以properties文件為例.

1.在assets文件夾下,新建環(huán)境配置文件apiurl.properties,如下:
以Alpha和UAT為例,切換時(shí)只需注釋掉不用的環(huán)境,即可.

#### Alpha ####
#versionName=A
#memberApp=http://xxx.alpha.com/member-app/v1/api
#designApp=http://xxx.alpha/design-app/v1/api


#### UAT ####
versionName=A
memberApp=http://xxx.uat.com/member-app/v1/api
designApp=http://xxx.uat.com/design-app/v1/api

2. 讀取apiurl.properties

/**
 * 運(yùn)行環(huán)境的管理切換類.
 * @author liuhea
 * @date 2016-6-6 .
 */
public class ApiManagerV2 {

    public static final String PROPERTY_PATH = "apiurl.properties";
  
    private static final String MEMBER_APP = "memberApp";
    private static final String DESIGN_APP = "designApp";
    private static final String VERSION_NAME = "versionName";

    /*登錄地址*/
    public final static String LOGIN_PATH = getUrlPath(LOGIN_URL);
    /*member-app*/
    public final static String MEMBER_PATH = getUrlPath(MEMBER_APP);
    /*design-app*/
    public final static String DESIGN_PATH = getUrlPath(DESIGN_APP);
  
    /**
     * 獲取配置文件中對應(yīng)的URL地址
     *
     */
    private static String getUrlPath(String propKey) {
        String urlPath = (String) PropUtil.loadAssetsProperties(AdskApplication.getInstance(), PROPERTY_PATH).get(propKey);
        return urlPath;
    }
}

/**
 * 讀取配置文件的工具類 .
 * @author liuhea .
 * @date 2016-6-6 .
 */
public class PropUtil {
    /**
     * 讀取assets文件夾下的文件
     */
    public static Properties loadAssetsProperties(Context context, String arg) {
        Properties prop = null;
        prop = new Properties();
        //first load default properties
        try {
            prop.load(context.getAssets().open(arg));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return prop;

    }


    /**
     * 讀取Res文件夾的文件
     */
    public static Properties loadResProperties(Context context, int id) {
        Properties prop = new Properties();
        //first load default properties
        try {
            prop.load(context.getResources().openRawResource(id));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return prop;

    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容