SharedPreferences自定义存储位置

一、     系统自带的用法、生成方式、路径的介绍

SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。

SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下:

主要的使用的方法:

getSharedPreferences(“”,””); //获得其对象
Editor editor = sharedPreferences.edit();//获取编辑器

剩下无非就是getString,putString,getInt,putInt等方法的调用

下面稍微的看一下其源码,具体看一下它的工作流程

SharedPreferences本身是一个接口函数,里面的提供的Editor也提供了接口,看一下它的方法结构:

SharedPreferences自定义存储位置_第1张图片

所以SharedPreferences方法的主要的实现是在SharedPreferencesImpl类中

在ContextImpl类中存在一个获取SharedPreferences对象的方法(其实Activity本身就是一个context)

SharedPreferences自定义存储位置_第2张图片

在这个方法中有生成了SharedPreferencesImpl对象,并且也已经生成了一个prefsFile,

SharedPreferences自定义存储位置_第3张图片

这个生成这个文件的路径可以根据方法调用就行跟踪即可,最后发现这个路径是跟ApplicationInfo这个结构体中的变量,是跟具体的Activiry相关的,分析一下ApplicationInfo的使用,就可以知道它生成文件的路径为/data/data//shared_prefs

接下来就是SharedPreferencesImpl对这个文件进行操作了,所以说这个路径如果不考虑其他的方法是不可以更改的。

于是介绍下面两种方法自定义路径生成xml文件,以防程序卸载或者其他导致数据丢失

二、     SharePerence自定义生成、路径的方法

首先声明这个方法是参照网站的教程完成的,链接地址为:

SharePerence自定义生成,打包的方法可以使用这个,打包方法

略微的说明一下,方法讲解的很全面,可以使用(亲自测过)。

根据一说明,可以知道主要是在SharedPreferencesImpl找入口,自己重写SharedPreferencesImpl方法,把里面固定的文件路径改成自己的文件即可。

三、     模拟SharePerference的功能,自己实现其方法

二里面的方法个人感觉有点晕,于是又想另外的一个方法去实现存储功能

本身就是轻量级的数据存储,而且又是以xml文件的方式,为何不自己写xml文件,然后在这个xml文件中做文章,实现数据的存储、使用和更新。

刚开始想觉得这样貌似比较麻烦,但是实现起来,发现没有那么麻烦,由于java的函数接口机制太好了,我们需要的只是函数调用而已。

需要了解的东西有:dom,ducument,node和树的概念以及方法的使用








你可能感兴趣的:(android)