SharedPreferences存储共享变量的文件路径位于“/data/data/应用程序包/shared_prefs”目录下,通过adb shell,可以看到如下所示:
查看当前目录:
# pwd
/data/data/com.min.ijoke/shared_prefs
显示当前目录下的文件:
# ls
min_ijoke.xml // 此文件就是存储SharedPreferences变量的文件
AppSettings.xml
PushFlag.xml
Finalize_Flag.xml
ShowAdFlag.xml
Start_Tag.xml
查看SharedPreferences变量的文件内容,都是键值对形式存储在xml文件中的。
SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此它保存的数据主要是简单类型的key – value对。
SharedPreferences接口主要负责读取应用程序的Preferences数据,它提供如下常用方法来访问SharedPreferences中的key – value对。
1、boolean contains(String key):判读SharedPreferences 是否包含特定key的数据。
2、abstract Map<String ,?>getAll():获取SharedPreferences数据里全部的key – value 对。
3、boolean getXxx(String ,xxx value):获取SharedPreferences数据里指定key对应的value。如果该key不存在,则返回默认值value。其中xxx可以是boolean、float、int、long、String等各种基本类型的值。
SharedPreferences接口本身没有提供写入数据的能力,二十通过SharedPreferences的内部接口,SharedPreferences调用edit()方法即可获取它所对应的Editor对象。Editor提供如下方法来向SharedPreferences写入数据。
1、SharedPreferences.Editor.clear():清空SharedPreferences里所有数据。
2、SharedPreferences.Editor.putXxx(String key ,xxx value):向SharedPreferences存入指定key对应的数据。其中xxx可以是boolean、float、int、long、String等各种基本类型的值。
3、SharedPreferences.Editor.remove(String key):删除SharedPreferences里指定key对应的数据项。
4、boolean commit():当Editor编辑完成后,调用该方法提供修改
SharedPreferences本身是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name,int mode)方法来获取SharedPreferences实例,该方法的第二个参数支持如下几个值。
1、Context.MODE_PRIVETE:指定该SharedPreferences数据只能被本应用程序读写。
2、Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写。
3、Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。