Android为数据存储提供了三种方式:文件、数据库和网络。
1.SharedPreferences共享偏好
2.Internal Storage内部存储空间
3.External Storage外部存储空间
4.SQLite Database数据库
5.Internet网络
一、SharedPreferences(偏好设定)多用于保存软件配置参数,是一种采用XML格式进行数据保存的方式,文件存放在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。
通过SharedPreferences可以将NVP(Name/Value Pair,键值对)保存在Android的文件系统中,而且SharedPreferences完全屏蔽对文件系统的操作过程,开发人员仅是通过调用SharedPreferences对NVP进行保存和读取。
SharedPreferences不仅能够保存数据,还能够实现不同应用程序间的数据共享。
SharedPreferences支持三种访问模式:私有(MODE_PRIVATE)、全局读(MODE_WORLD_READABLE)、全局写(MODE_WORLD_WRITEABLE)。
获取SharedPreferences对象的两个方法:
Context.getSharedPreferences(String name,int mode):其中 name 为本组件的配置文件名;mode 为操作模式,默认的模式为0。
Activity.getPreferences(int mode):配置文件仅可以被调用的Activity使用。mode 为操作模式,默认的模式为0。
如果要读取配置文件信息,只需要直接使用SharedPreferences对象的getXXX()方法即可,而如果要写入配置信息,则必须先调用SharedPreferences对象的edit()方法,使其处于可编辑状态,然后再调用putXXX()方法写入配置信息,最后调用 commit()方法提交更改后的配置文件。
二、文件存储
(1) 内部存储
Android系统允许应用程序创建仅能够自身访问的私有文件,文件保存在设备的内部存储器上,在系统下的/data/data/<package name>/files目录中。
Android系统支持标准Java的IO类和方法,并提供了能够简化读写流式文件过程的函数,主要的两个函数:
openFileOutput():为写入数据做准备而打开的应用程序私文件,如果指定的文件不存在,则创建一个新的文件,函数的返回值是FileOutputStream类型;
openFileInput():为读取数据做准备而打开应用程序私文件。
(2) 外部存储(SD卡(Secure Digital Memory Card))
SD卡适用于保存大尺寸的文件或者是一些无需设置访问权限的文件,可以保存录制的大容量的视频文件和音频文件等;SD卡使用的是FAT(File Allocation Table)的文件系统,不支持访问模式和权限控制,但可以通过文件系统的文件访问权限的控制保证文件的私密性。
Android模拟器支持SD卡,但模拟器中没有缺省的SD卡,开发人员须在模拟器中添加SD卡的映像文件。
(3) 资源文件
程序开发人员可以将程序开发阶段已经准备好的原始格式文件和XML文件分别存放在/res/raw和/res/xml目录下,供应用程序在运行时进行访问;原始格式文件可以是任何格式的文件,在应用程序编译和打包时,/res/raw目录下的所有文件都会保留原有格式不变,而/res/xml目录下的XML文件,一般用来保存格式化的数据,在应用程序编译和打包时会将XML文件转换为高效的二进制格式,应用程序运行时会以特殊的方式进行访问。
<!--EndFragment-->