第一种: 使用SharedPreferences存储数据
适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果、
小游戏的玩家积分等),解锁口 令密码等
核心原理:保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。通过DDMS的File Explorer面板,展开文件浏览树,很明显
SharedPreferences数据总是存储在/data/data/[握手]d_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口
Editor对象实现。 SharedPreferences本身是一 个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode)方法来获取SharedPreferences实例,
该方法中name表示要操作的xml文件名,第二个参数具体如下:
Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。
Context.MODE_WORLD_READABLE: 指定该SharedPreferences数据能被其他应用程序读,但不能写。
Context.MODE_WORLD_WRITEABLE: 指定该SharedPreferences数据能被其他应用程序读,
写
Editor有如下主要重要方法:
SharedPreferences.Editor clear():清空SharedPreferences里所有数据
SharedPreferences.Editor putXxx(String key , xxx value):
向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据
SharedPreferences.Editor remove(): 删除SharedPreferences中指定key对应的数据项
boolean commit(): 当Editor编辑完成后,使用该方法提交修改
第二种: 文件存储数据
核心原理: Context提供了两个方法来打开数据文件里的文件IO流 FileInputStream openFileInput(String name); FileOutputStream(String name , int mode),这两个方法第一个参数
用于指定文件名,第二个参数指定打开文件的模式。具体有以下值可选:
MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的
内容,如果想把新写入的内容追加到原文件中。可 以使用Context.MODE_APPEND
MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
除此之外,Context还提供了如下几个重要的方法:
getDir(String name , int mode):在应用程序的数据文件夹下获取或者创建name对应的子目录
File getFilesDir():获取该应用程序的数据文件夹得绝对路径
String[] fileList():返回该应用数据文件夹的全部文件
第三种:SQLite存储数据
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们
为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上的SQLite开发技巧
SQLiteDatabase类为我们提供了很多种方法,上面的代码中基本上囊括了大部分的数据
库操作;对于添加、更新和删除来说,我们都可以使用
第四种:内容提供者ContentProvider存储数据
第五种: 网络存储数据
前面介绍的几种存储都是将数据存储在本地设备上,除此之外,还有一种存储(获取)数据的方式,通过网络来实现数据的存储和获取。
我们可以调用WebService返回的数据或是解析HTTP
协议实现网络数据交互。
标题
重点内容
重点内容
DCIM中thumbnail的缩略图文件的方法,这里图片的尺寸一般都在10-50k,文件比较小。
相对路径与绝对路径
绝对路径获取:
// SD卡存储
SDPATH = Environment.getExternalStorageDirectory() + “相对路径”;
// 内部存储
FILESPATH = context.getFilesDir().getPath() + “相对路径”;
重点内容
- 彻底了解android中的内部存储与外部存储
- android获取内置和外置SD卡路径
- Android中的文件存储位置:java.io.FileNotFoundException: xxx: open failed: EROFS (Read-only file system)
- android中的文件操作详解以及内部存储和外部存储
- Android Environment.getExternalStorageDirectory() 获取的是内部存储还是外部存储?
- Android中Uri和Path之间的转换
- Sharedpreferences保存对象和图片等复杂类型的数据
- Android 断点下载和自动安装
- Android存储路径你了解多少?
- Android获取本机各种类型文件列表(音乐、视频、图片、文档等)
- AndroidFilePicker 小巧快速的文件选择器框架
- SharedPreferences存储apply()和commit()的区别你知道吗? 郭神推荐,深入讲解了sp存读机制