android中使用properties文件配置
16lz
2022-05-15
借鉴 http://blog.csdn.net/myliuyx/article/details/40424455 修改
一、
1.创建properties文件,在Android 工程目录下 res/raw 新建一个 .prorperties 文件;或者在res/assests目录下创建
2.编写 配置信息
如果我们需要配置
UPDATE_PHOTO_URL 修改图片地址
NOTIC_MSAGES_URL 通知地址
IMAGEPAHT 图片地址
几个用户获取图片和通知的信息。
######开发环境配置########UPDATE_PHOTO_URL_DEBUG = http://xxx.xxx.xxx/servlet/MobileServletNOTICE_MSAGES_URL_DEBUG = http://xxx.xxx.xxx/msgPushTxt/IMAGEPATH_DEBUG = http://xxx.xxx.xx/img/HOST_DEBUG = 10.0.0.1######测试环境配置########UPDATE_PHOTO_URL_TEST = http://xxx.xxx.xxx/servlet/MobileServletNOTICE_MSAGES_URL_TEST = http://xxx.xxx.xxx/msgPushTxt/IMAGEPATH_TEST = http://xxx.xxx.xx/img/HOST_TEST = 10.0.0.1######生产环境配置########UPDATE_PHOTO_URL_PRO = http://xxx.xxx.xxx/servlet/MobileServletNOTICE_MSAGES_URL_PRO = http://xxx.xxx.xxx/msgPushTxt/IMAGEPATH_PRO = http://xxx.xxx.xx/img/
配置文件里面分别的给这个配置信息 加上 "_TEST"、"_DEBUG"、"_PRO" 来分别的区分 测试环境、开发环境、以及生产环境。
二、配置
1.首先需要再清单文件AndroidManifest.xml 下面 application 节点下面配置 一个meta-date节点
这个属性下面的 value 对应的 分别是 debug test pro 就是刚刚我们配置文件里面的 3个环境。
2.在application类中添加(loadConfig)配置方法和(getDevModelValue)使用方法,
public Properties property = null;//声明变量 /** * 加载开发环境的配置文件 * @author zzw * **/ private void loadConfig() { InputStream in = null; property = new Properties(); try { in = getResources().openRawResource(R.raw.app); property.load(in); } catch (IOException e) { Log.e(TAG, "load properties error",e); }finally{ if(in!=null){ try { in.close(); } catch (IOException e) { } } } } /** * 获取开发模式 * @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 (PackageManager.NameNotFoundException e) { Log.e(TAG, "获取开发模式失败", e); } //将Applicaition里面配置的(pro,test,debug)拼接成 UPDATE_PHOTO_URL _TEST String configKey = key+"_"+ msg; //获取配置文件对应的值 return property.getProperty(configKey.toUpperCase()); }
注:若properties文件放在assets目录下,则
Properties pro = new Properties(); InputStream is = context.getAssets().open("app.properties"); pro.load(is);
三、使用
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 就可以了。
更多相关文章
- MAC下Android的Eclipse开发环境的搭建
- android 系统资源的加载和获取
- Android应用程序获取ROOT权限的方法
- [Android入门]1. Android开发环境搭建
- Android(安卓)下arcgis开发学习第一天——环境配置及常见错误
- Android(安卓)之 ContentProvider 共享数据库-通讯录
- 【Android】Mac系统Android开发环境搭建
- Android下uptime获取系统启动和运行时间
- Android流量统计