Android数据的四种存储方式
作为一个完成的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、SQLite、Content Provider和File。由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Provider。
SQLite: SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式。Android为此数据库提供了一个名为SQLiteDatabase的类,封装了一些操作数据库的API。
SharedPreference: 除SQLite数据库外,另一种常用的数据存储方式,其本质就是一个xml文件,常用于存储较简单的参数设置。
File: 即常说的文件(I/O)存储方法,常用语存储大数量的数据,但是缺点是更新数据将是一件困难的事情。
ContentProvider: Android系统中能实现所有应用程序共享的一种数据存储方式,由于数据通常在各应用间的是互相私密的,所以此存储方式较少使用,但是其又是必不可少的一种存储方式。例如音频,视频,图片和通讯录,一般都可以采用此种方式进行存储。每个Content Provider都会对外提供一个公共的URI(包装成Uri对象),如果应用程序有数据需要共享时,就需要使用Content Provider为这些数据定义一个URI,然后其他的应用程序就通过Content Provider传入这个URI来对数据进行操作。
二、SharedPreference的使用:
SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改时通过Editor对象实现(重新对一个键赋值达到了数据的修改)。实现SharedPreferences的存储步骤如下:
1.根据Context获取SharedPreferences对象
2.利用edit()方法获取Editor对象
3.通过Editior对象存储key-value键值对数据
4.通过commit()方法提交数据
代码如下:
public class PreferenceUtil { private static String preference = "TestFile_FILE"; public static String getStringPreference(Context context, String key, String defaultValue) { SharedPreferences preferences = context.getSharedPreferences(preference, context.MODE_PRIVATE); String test = preferences.getString(key, defaultValue); return test; } public static void setStringPreference(Context context, String key, String value) { SharedPreferences preferences = context.getSharedPreferences(preference, context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString(key, value); editor.commit(); } }