`
1140566087
  • 浏览: 548837 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18109
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:309945
Group-logo
J2ME 基础学习课程集
浏览量:18087
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17223
社区版块
存档分类
最新评论

Android 之 数据存储方式

阅读更多
[b]Android 之 数据存储与访问
概念:任何一个应用程序都要依赖数据存储,而且这种存储必须不丢失数据,并且有效、简便使用和更新这些数据。在Android操作系统中一共提供了四中数据存储方式,但是由于存储的这些数据都是私有的,所以如果需要共享其他应用程序的数据,就需要使用ContentProvider(数据共享);

1. Android 中数据存储的方式:4种
1) Shared Preferences :存储于手机自身内存,存储数据类型为:”键-值” 格式的数据
2) Files 存储:通过FileInputStream 和 FileOutStream 操作文件;
3) SQLite:标准的数据库存储,支持SQL 语句;
4) NetWork : 网络存储,通过网络存储和获取数据;


2. 数据存储之  SharedPreferences 存储:
1) 作用:使用键值一一对应关系保存配置信息;
2) 特点:键值的一一对应关系,保存的数据主要是简单的key-value 对
3) 说明:SharedPreferences ,一个轻量级存储类,特别适合用于保存软件配置参数;
4) 例如:保存上一次用户修改或自定义参数,音效,震动等…
5) 存储路径:/data/data/<package name>/shared_prefs 目录下;
6) 操作模式:(创建xml文件时赋予文件的权限)
a) 文件创建模式:Activity.MODE_APPEND :如果该文件已经存在,然后将数据写入,而不是抹掉现有文件的末尾;
b) MODE_PRIVATE: 默认模式,在那里创建的文件只能由应用程序调用,即为私有的;
c) Activity.MODE_WORLD_READABLE :允许所有其他应用程序读取和创建文件的权限;
d) Activity.MODE_WORLD_WRITEABLE :允许所有其他应用程序具有写入、访问和创建的文件权限;
7) 实例演示存放步骤:
a) SharedPreferences sp = getSharedPreferences(“文件名”,”模式”);   //获取对象
b) Editor editor= sp.edit();    //通过SharedPreferences 对象获取Editor 对象
c) Editor.putXXX(key,value);   //存入数据
d) editor.commit();  // 提交修改的数据

8) 实例演示读取步骤:
a) SharedPreferences sp = getSharedPreferences(“读取文件名”,”模式”);
b) sp.getXXX(key);   // 获取数据
9) 缺点:只能存储boolean int float  long  string 五种简单的数据类型,只能是存储方式的一种补充;
 
3. 数据存储之 文件存储:
1) Activity 中使用 openFileOutput() 方法用于把数据输出到文件中;
2) 写入文件内容用法:
a) FileOutputsStream out = this.openFileOutput(“a.txt”,”操作模式”);
3) 操作模式:
a) Context.MODE_PRIVATE  : 默认,代表该文件是私有数据;
b) Context.MODE_APPEND :想已经存在的文件追加内容;
c) Context.MODE_WORLD_WRITEABLE :是否有权限写入该文件
d) Context.MODE_WORLD_READABLE : 是否被其它应用读取;
e) 提示:可以读  和 写 的权限可以联合进行使用:中间用  “+” 链接;
4) 保存位置:/data/data/<package name>/files 目录下
5) 读取文件内容用法:
a) 相对路径用法:FileInputStream fis = this.openFileInput(“文件名”);
b) 绝对路径用法:File file = new File(“/data/data/sun.android/files/a.txt”);  FileInputStream fis = new FileInputStream(file);
6) 提示:如果自定义类中需要使用到Activity中的对象,那么在该类中定义构造方法用于接收Activity传递多来的对象,同样可以进行使用的;

4. 数据存储之 SQLite 数据库:
1) 简介:SQLite 是一个开源的嵌入式关系数据库;
2) 优点:可以减少应用程序管理数据的开销,可移植性好,容易使用,体积小,高效可靠;
3) 特点:
a) 可以将SQLite数据库看成 无数据类型的数据库,因为可以自行转换;主键为Integer ,则,只能存储 64位整数;
b) 零配置:不用安装,不用配置,不用启动,不用关闭;
c) 可移植:商用系统 , 嵌入式操作系统,都可以使用
d) 紧凑:轻量级、自包含。一个头文件,一个lib库,就可以使用关系数据库了,不用启动任何进程;
e) 简单:SQLite有着简单易用的API接口;
f) 可靠:SQLite源码达到100%覆盖率;
4) 如何使用:
a) SQLiteDatabase 代表着一个数据库对象(底层为一个数据库文件);
b) SQLiteOpenHilper :用于创建、打开数据库以及各种数据库的操作; 说明:该类为一个抽象类,抽象方法:onCreate();  onUpgrade(); 
c) 说明总结:如果数据库不存在,只调用onCreate() 方法,该方法只会在数据库第一次创建时调用; 如果数据库文件存在,并高于之前版本,会调用onUpgrade方法来升级数据库,并更新版本号;
[/b]
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics