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-->