SharedPreferences自定义存储位置
一、 系统自带的用法、生成方式、路径的介绍SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下: 主要的使用的方法getSharedPreferences(“”,””); //获得其对象E
一、 系统自带的用法、生成方式、路径的介绍
SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。
SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<packagename>/shared_prefs目录下:
主要的使用的方法:
getSharedPreferences(“”,””); //获得其对象
Editor editor = sharedPreferences.edit();//获取编辑器剩下无非就是getString,putString,getInt,putInt等方法的调用
下面稍微的看一下其源码,具体看一下它的工作流程
SharedPreferences本身是一个接口函数,里面的提供的Editor也提供了接口,看一下它的方法结构:
所以SharedPreferences方法的主要的实现是在SharedPreferencesImpl类中
在ContextImpl类中存在一个获取SharedPreferences对象的方法(其实Activity本身就是一个context)
在这个方法中有生成了SharedPreferencesImpl对象,并且也已经生成了一个prefsFile,
![]()
这个生成这个文件的路径可以根据方法调用就行跟踪即可,最后发现这个路径是跟ApplicationInfo这个结构体中的变量,是跟具体的Activiry相关的,分析一下ApplicationInfo的使用,就可以知道它生成文件的路径为/data/data/<package name>/shared_prefs
接下来就是SharedPreferencesImpl对这个文件进行操作了,所以说这个路径如果不考虑其他的方法是不可以更改的。
于是介绍下面两种方法自定义路径生成xml文件,以防程序卸载或者其他导致数据丢失
二、 SharePerence自定义生成、路径的方法
首先声明这个方法是参照网站的教程完成的,链接地址为:
SharePerence自定义生成,打包的方法可以使用这个,打包方法
略微的说明一下,方法讲解的很全面,可以使用(亲自测过)。
根据一说明,可以知道主要是在SharedPreferencesImpl找入口,自己重写SharedPreferencesImpl方法,把里面固定的文件路径改成自己的文件即可。
三、 模拟SharePerference的功能,自己实现其方法
二里面的方法个人感觉有点晕,于是又想另外的一个方法去实现存储功能
本身就是轻量级的数据存储,而且又是以xml文件的方式,为何不自己写xml文件,然后在这个xml文件中做文章,实现数据的存储、使用和更新。
刚开始想觉得这样貌似比较麻烦,但是实现起来,发现没有那么麻烦,由于java的函数接口机制太好了,我们需要的只是函数调用而已。
需要了解的东西有:dom,ducument,node和树的概念以及方法的使用
更多推荐

所有评论(0)