Android开发中使用.prorperties配置文件

一、需要配置的地方,和场景

最近公司开发了一个产品,分别卖给了N个客户,但是每个客户都是独立的,所以就有了N套环境。

而每一套环境都有不同,后台Web 连接, 以及一些图片,文件下载都再不同的服务器上, 所以每次给不同的环境打包的时候都需要分别配置 好几个地方的URL 或者IP。

经常打错包,或者地址配错。 如果你也正遇到这样的项目,那么不防跟着我学会使用Android 上面的.Prorperties 配置文件吧。


二、编写配置信息

1.在Android 工程目录下 res/raw 新建一个 .prorperties  文件。 
2.编写 配置信息

如果我们需要配置

UPDATE_PHOTO_URL   修改图片地址

NOTIC_MSAGES_URL 通知地址

IMAGEPAHT 图片地址

几个用户获取图片和通知的信息。


######开发环境配置########
UPDATE_PHOTO_URL_TEST = http://xxx.xxx.xxx/servlet/MobileServlet
NOTICE_MSAGES_URL_TEST = http://xxx.xxx.xxx/msgPushTxt/
IMAGEPATH_TEST = http://xxx.xxx.xx/img/
HOST_TEST = 10.0.0.1



######测试环境配置########
UPDATE_PHOTO_URL_TEST = http://xxx.xxx.xxx/servlet/MobileServlet
NOTICE_MSAGES_URL_TEST = http://xxx.xxx.xxx/msgPushTxt/
IMAGEPATH_TEST = http://xxx.xxx.xx/img/
HOST_TEST = 10.0.0.1

######生产环境配置########
UPDATE_PHOTO_URL_TEST = http://xxx.xxx.xxx/servlet/MobileServlet
NOTICE_MSAGES_URL_TEST = http://xxx.xxx.xxx/msgPushTxt/
IMAGEPATH_TEST = http://xxx.xxx.xx/img/

配置文件里面分别的给这个配置信息 加上 "_TEST"、"_DEBUG"、"_PRO" 来分别的区分 测试环境、开发环境、以及生产环境。

3.使用配置文件

a.首先需要再清单文件AndroidManifest.xml 下面 application 节点下面配置 一个meta-date节点

 	<!-- 开发模式,debug:调试(开发)模式,test:测试模式,pro:生产模式-->
        <meta-data android:value="debug" android:name="DEV_MODEL"/>

Application 如下

<application
        android:name="com.MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        
        <!-- 开发模式,debug:调试(开发)模式,test:测试模式,pro:生产模式-->
        <meta-data android:value="debug" android:name="DEV_MODEL"/>

 这个属性下面的 value 对应的 分别是 debug  test pro 就是刚刚我们配置文件里面的 3个环境。

b.创建一个Application 类 并新增方法

/**
	 * 加载开发环境的配置文件
	 * @author wgy
	 * **/	
	private void loadConfig(){
		InputStream in = null;
		try {
			in = getResources().openRawResource(R.raw.config);
			config.load(in);
		} catch (IOException e) {
			Log.e(TAG, "load properties error",e);
		}finally{
			if(in!=null){
				try {
					in.close();
				} catch (IOException e) {
				}
			}
		}
	}

并且在 Application 的onCreate 方法时候 需调用加载配置文件方法(   loadConfig()  );

/**
 * 获取开发模式
 * @return 配置文件对应 的值。
 * **/	
public String getDevModelValue(String key){
	ApplicationInfo appInfo=null;
	String msg = "DEBUG";//默认是开发模式
	try {
	//获取meta-data 属性
	appInfo=  this.getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
	//获取meta-data 下面DEV_MODEL 的值
	msg  = appInfo.metaData.getString("DEV_MODEL");
	} catch (NameNotFoundException e) {
		Log.e(TAG, "获取开发模式失败", e);
	}
	
	Properties config = new Properties();
	//将Applicaition里面配置的(pro,test,debug)拼接成 UPDATE_PHOTO_URL _TEST
 	String configKey = key+"_"+ msg;
	//获取配置文件对应的值
	return config.getProperty(configKey.toUpperCase());

}


c.使用Application 新添加的getDevModelValue 方法

String UPDATE_PHOTO_URL=MyApplication.getInstance().getDevModelValue("UPDATE_PHOTO_URL");// 图片上传地址
String NOTICE_MSAGES_URL=MyApplication.getInstance().getDevModelValue("NOTICE_MSAGES_URL");// 通知获取地址



使用getDevModelValue 方法的时候 只需要 传入对应的前缀"UPDATE_PHOTO_URL" 、 "NOTICE_MSAGES_URL"参数getDevModelValue 方法会自动去获取配置在AndroidManifest.xml 下面 application 节点下 meta-date “DEV_MODEL” 的值 并拼接为:"UPDATE_PHOTO_URL_DEBUG" 、 "NOTICE_MSAGES_URL_DEBUG"等,去获取配置文件下面相应的值。

二、总结

整个步骤为:
1.需要创建配置文件。
2.在 AndroidManifest.xml 下面  application 节点  配置下meta-date节点。
3.创建一个Application类,并写一个getDevModelValue 方法,用于获取 application 下 meta-date 对应的Value值,并获取对应配置文件的值。
4.在代码中使用getDevModelValue方法即可。
5.每次打包的时候 只需要修改  application 节点  配置下meta-date节点 对应的value 修改成debug test pro 就可以了。



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值