Android 的轻量储存 —— SharedPreferences

  在 iOS 开发里,如果保存一些软件通用设置包括用户名密码等,我们一般会用 NSUserDefaults 这个类来记录进和访问应用包里的 plist 文件。那么类似的逻辑在 Android 中实现则是需要用到 SharedPreferences 这个类

一、关于 SharedPreferences

  SharedPreferences 的使用非常简单,能够轻松的存放数据和读取数据。SharedPreferences 只能保存简单类型的数据,例如,Stringint 等。一般会将复杂类型的数据转换成 Base64 编码,然后将转换后的数据以字符串的形式保存在 XML 文件中,再用 SharedPreferences 保存。

  使用 SharedPreferences 保存 key-value 对的步骤如下:

  (1)使用 Activity 类的 getSharedPreferences 方法获得 SharedPreferences 对象,其中存储 key-value 的文件的名称由 getSharedPreferences 方法的第一个参数指定。
  (2)使用 SharedPreferences 接口的 edit 获得 SharedPreferences.Editor 对象。
  (3)通过 SharedPreferences.Editor 接口的 putXxx 方法保存 key-value 对。其中 Xxx 表示不同的数据类型。例如:字符串类型的 value 需要用 putString 方法。
  (4)通过 SharedPreferences.Editor 接口的 commit 方法保存 key-value 对。commit 方法相当于数据库事务中的提交(commit)操作。 


二、操作 SharedPreferences

1.存放数据信息

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//1、打开 Preferences,名称为 dataBase,如果存在则打开它,否则创建新的 Preferences

SharedPreferences dataBase = getSharedPreferences(“setting”, 0);

//2、让 dataBase 处于编辑状态

SharedPreferences.Editor editor = dataBase.edit();

//3、存放数据

editor.putString(“name”,”ATAAW”);

editor.putString(“URL”,”ATAAW.COM”);

//4、完成提交

editor.commit();

2.读取数据信息

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
//1、获取Preferences

SharedPreferences dataBase = getSharedPreferences(“setting”, 0);

//2、取出数据

String name = dataBase.getString(“name”,”默认值”);

String url = dataBase.getString(“URL”,”default”);

//以上就是Android中SharedPreferences的使用方法,其中创建的Preferences文件存放位置可以在Eclipse中查看:

DDMS->File Explorer /<package name>/shared_prefs/setting.xml

3.删除数据信息

Java
1
dataBase.edit().clear().commit();

三、查看模拟器储存的数据 —— 简单 adb 操作

开启 $ adb shell

提升权限 :/ $ su

(输入自己想查看项目的路径),进入文件夹 :/ # cd 文件路径

查看文件夹内容 :/data/data/工程名/databases # ls

BookStore.db BookStore.db-journal

用SQLite打开数据库 :/data/data/工程名/databases # sqlite3 BookStore

查看数据库表格 sqlite> .talbe

查看某个表的数据 sqlite> select * from book; (分号不能少)

导出某个表的数据 sqlite> .dump book

------本文结束 感谢阅读------

本文地址:http://kaaaaai.cn/articles/029.html
本文基于 知识共享署名-相同方式共享 4.0 国际许可协议发布
转载请注明出处,谢谢!

众筹项目:拯救世界!
0%