Android环境配置之使用properties文件
在进行环境切换时候,我们可以有多种方式,比如
- 直接适用常量管理类
- 利用Gradle实现app的环境分离
- 使用配置文件的形式
第一种方式比较适合环境稳定/单一的情况,如果涉及多种环境,比如Alpha/UAT/Production等的情况,管理起来就不是很方便了,所以要考虑第二和第三种方式,用Gradle的方式,可以参考Multi-flavor variants,下面以properties文件为例.
1.在assets文件夹下,新建环境配置文件apiurl.properties,如下:
以Alpha和UAT为例,切换时只需注释掉不用的环境,即可.
#### 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
/**
* 运行环境的管理切换类.
* @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);
/**
* 获取配置文件中对应的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;
}
}
推荐阅读
- android第三方框架(五)ButterKnife
- vue-cli|vue-cli 3.x vue.config.js 配置
- 人生感悟记#环境仪器宋庆国成长记#072
- Android中的AES加密-下
- 爱琐搭配(喜欢复古、冷淡,像这种双环设计的气质耳环)
- 六步搭建ES6语法环境
- 带有Hilt的Android上的依赖注入
- opencv|opencv C++模板匹配的简单实现
- android|android studio中ndk的使用
- 【亲测好用】高逼格配色网站推荐