Android 数据存储
2010-05-16 12:00
302 查看
在Android中,提供了三种数据存储的途径,和两种存储方式。
三种途径:
l 系统配置(Shared Preferences):
这类应用主要是系统的配置信息的保存,比如我给程序界面设置了颜色,我想在下一次启动时还是能够保留上次设置的颜色。由于Android系统的界面是采用Activity栈的形式,在系统资源不足时,会收回一些界面,那么,我想有些操作也是需要在不活动时保留下来的,等再次激活时能够显示出来。
l 文件(Files)
Android是一个操作系统,自然而然对存储系统会有一个管理,因为采用提Linux核心,所有在Andorid系统中,文件也是Linux的形式。当然我们的应用程序也就可以把数据以文件的形式记录下来咯。
l 数据库(SQLite Databases)
在Andriod系统中,也少不了一个数据库管理,但考虑到系统资源(内存,硬盘),选择了轻便型的数据库SQLite,这是一个开源的关系型数据库,与普通关系型数据库一样,也具有ACID的特性。
两种存储方式:
主要是根据数据库共享方式来分
l 程序内自用:
通常我们程序中需要的数据一般都是为本程序来用,所以我们用上面三种途径来创建的程序都是默认为本程序使用,其他程序无法获取操作。
我们ADB插件功能在命令行下输入:adb shell 来进入手机的文件系统,进入CD /data/data目录。然后ls查看,我们发现,我们在系统中安装的每个程序在这里都有一个文件夹,再次进入我们的程序后ls查看,会出现几个目录:shared_prefs、files、databases,这几个目录其实就是存的我们程序内自用的数据,内容分别就是由上面三种途径创建的,当然如果没有创建过,这个目录可能不存在。
l 数据需要共享:
这类数据通常是我们的一些共用数据,很多程序都会来调用,比如电话薄数据,就不可能存为私有的了。当然,这种方式的话,上面三种途径中的系统配置就不适用了,“系统配置”只能由本程序访问。也就是说,只有文件和数据库可以共享。
一、系统配置(Shared Preferences)
SharedPreferences是以键值对来存储应用程序的配置信息的一种方式,它只能存储基本数据类型。一个程序的配置文件仅可以在本应用程序中使用,或者说只能在同一个包内使用,不能在不同的包之间使用。 实际上SharedPreferences是采用了XML格式将数据存储到设备中,在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。
以下表格为获取SharedPreferences对象的两个方法:
如果要读取配置文件信息,只需要直接使用SharedPreferences对象的getXXX()方法即可,而如果要写入配置信息,则必须先调用SharedPreferences对象的edit()方法,使其处于可编辑状态,然后再调用putXXX()方法写入配置信息,最后调用commit()方法提交更改后的配置文件。
以下是示例代码:
三种途径:
l 系统配置(Shared Preferences):
这类应用主要是系统的配置信息的保存,比如我给程序界面设置了颜色,我想在下一次启动时还是能够保留上次设置的颜色。由于Android系统的界面是采用Activity栈的形式,在系统资源不足时,会收回一些界面,那么,我想有些操作也是需要在不活动时保留下来的,等再次激活时能够显示出来。
l 文件(Files)
Android是一个操作系统,自然而然对存储系统会有一个管理,因为采用提Linux核心,所有在Andorid系统中,文件也是Linux的形式。当然我们的应用程序也就可以把数据以文件的形式记录下来咯。
l 数据库(SQLite Databases)
在Andriod系统中,也少不了一个数据库管理,但考虑到系统资源(内存,硬盘),选择了轻便型的数据库SQLite,这是一个开源的关系型数据库,与普通关系型数据库一样,也具有ACID的特性。
两种存储方式:
主要是根据数据库共享方式来分
l 程序内自用:
通常我们程序中需要的数据一般都是为本程序来用,所以我们用上面三种途径来创建的程序都是默认为本程序使用,其他程序无法获取操作。
我们ADB插件功能在命令行下输入:adb shell 来进入手机的文件系统,进入CD /data/data目录。然后ls查看,我们发现,我们在系统中安装的每个程序在这里都有一个文件夹,再次进入我们的程序后ls查看,会出现几个目录:shared_prefs、files、databases,这几个目录其实就是存的我们程序内自用的数据,内容分别就是由上面三种途径创建的,当然如果没有创建过,这个目录可能不存在。
l 数据需要共享:
这类数据通常是我们的一些共用数据,很多程序都会来调用,比如电话薄数据,就不可能存为私有的了。当然,这种方式的话,上面三种途径中的系统配置就不适用了,“系统配置”只能由本程序访问。也就是说,只有文件和数据库可以共享。
一、系统配置(Shared Preferences)
SharedPreferences是以键值对来存储应用程序的配置信息的一种方式,它只能存储基本数据类型。一个程序的配置文件仅可以在本应用程序中使用,或者说只能在同一个包内使用,不能在不同的包之间使用。 实际上SharedPreferences是采用了XML格式将数据存储到设备中,在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。
以下表格为获取SharedPreferences对象的两个方法:
返回值 | 函数 | 备注 |
SharedPreferences | Context.getSharedPreferences(String name,int mode) | name为本组件的配置文件名(如果想要与本应用程序的其他组件共享此配置文件,可以用这个名字来检索到这个配置文件)。 mode为操作模式,默认的模式为0或MODE_PRIVATE,还可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。 |
SharedPreferences | Activity.getPreferences(int mode) | 配置文件仅可以被调用的Activity使用。 mode为操作模式,默认的模式为0或MODE_PRIVATE,还可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。 |
以下是示例代码:
import android.app.Activity; import android.content.SharedPreferences; public class Calc extends Activity { public static final String PREFS_NAME = "MyPrefsFile"; . . . @Override protected void onCreate(Bundle state){ super.onCreate(state); . . . //载入配置文件 SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); //或者使用 SharedPreferences settings = getPreferences(0); boolean silent = settings.getBoolean("silentMode", false); setSilent(silent); } @Override protected void onStop(){ super.onStop(); //写入配置文件。可以使用SharedPreferences.Editor来辅助解决。 SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("silentMode", mSilentMode); editor.commit(); //一定要记得提交 //或者再简单化一可以这样写 SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); setting.edit().putBoolean(“silentMode”,mSilentMode).commit(); } } |
相关文章推荐
- Android25闹钟项目——ArrayAdapter动态添加数据,显示数据,删除数据SharedPreferences存储数据,读取数据
- Android数据持久化存储
- Android的数据存储(一)
- Android基础(二) 文件的读写及数据存储
- Android 数据存储
- android数据存储和访问
- Android进阶#(5/12)独特高效的数据存储——SQLite数据库_Android中的数据库开发
- Android数据存储方式(一)文件
- Android数据存储(一)
- Android数据存储方案ContentProvider存储数据
- Android数据存储SharedPreferences共享参数
- Android安卓——数据存储之文件存储
- Android进阶(三) 数据存储之SharedPreference
- Android中数据存储的几种方法
- Android 数据存储——shared preferences
- android数据存储与访问---文件存储
- Android数据存储-通过SharedPreferences实现记住密码的操作
- Android笔记(四十一) Android中的数据存储——SQLite(三)select
- Android数据存储(二)---Sqlite数据库(上)
- Android_数据存储_File