android中使用properties文件配置

来源:互联网 发布:h3c网络图标 编辑:程序博客网 时间:2024/05/19 05:02

借鉴 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节点

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

这个属性下面的 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 就可以了。