概览
Android支持的数据存储方式:
1. Sp存储 在键值对中存储私有的原始数据
2. 文件存储
2.1 内部文件存储 在设备文件系统中存储应用私有文件
2.2 外部文件存储 在共享外部文件系统中存储文件。此方式通常用于共享的用户文件,如照片
3. Sqlite 数据库存储 在私有数据库中存储结构化数据
4. 远程服务器存储
除了外部存储的某些文件类型外,所有这些选项均适用于应用私有数据(即其他应用无法自然访问的数据)。如果您希望与其他应用共享文件,则应使用 FileProvider API。如需了解详情,请阅读共享文件。
如果您希望向其他应用公开应用数据,则可使用 ContentProvider。借助内容提供程序,您可以完全控制向其他应用提供哪些读取/写入访问权限,无论您为数据选择何种存储介质(尽管通常为数据库)。如需了解更多信息,请阅读内容提供程序。
一 SharedPreferences 保存 (共享首选项)
如果您无需存储大量数据和存储结构,则应使用 SharedPreferences。借助 SharedPreferences API,您可以读取和写入原始数据类型(布尔型、浮点型、整型、长整型和字符串型)的永久性键值对。
系统会将键值对写入 XML 文件,而这类文件会永久保留在用户会话中(即便系统终止应用)。您可以手动指定文件名称,也可使用每个 Activity 的文件来保存数据。
API 名称“共享首选项”有一定的误导性,因为此 API 并不严格用于保存“用户首选项”,例如用户选择的铃声。您可以使用 SharedPreferences 来保存任何类型的简单数据,例如用户的高分。但是,如果您确实想要保存应用的用户首选项,请阅读如何创建设置界面,从而使用 AndroidX Preference Library 来构建设置屏幕并自动保留用户的设置。
说明
- SP存储专门存储一些单一的效数据
- 存储数据类型:boolean,float,int,long,String
- 数据保存的路径:/data/data/packageName.shared_prefs/yyy.xml
- 可以设置数据智能是当前应用读取,别的应用不可以
- 应用卸载时会删除此数据
相关API
- SharedPreferences:对应sp文件的接口
- context.getSharedPreferences(String name,int mode) ; 得到sp对象
- name 文件名
- mode 生成文件的模式(是否私有 )Context context = getActivity(); SharedPreferences sharedPref = context.getSharedPreferences( getString(R.string.preference_file_key), Context.MODE_PRIVATE);
- Editor sp.edit():得到Editor对象
- XXX sp.getXXX(name,defaultValue) 根据那么得到相应的数据 - Editor:能够更新sp文件的接口
- Editor put(name,value) 保存一个键值对 没有真正保存到文件中
- Editor remove(name)
- commit() 提交 数据真正保存到文件中
SP 保存数据
- 得到sp对象1
- 得到editor对象
- 得到输入的数据k-v
- 使用editor保存k-v
- 提示
SP 读取数据
二 文件存储读写
Android 文件存储的形式
- Inner File
- SD File
1. Android内部文件操作模式
2.文件的操作方法
三 SQLite 数据库
————————————————
[1] Android开发者文档--指南
[2]