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

更多相关文章

  1. Windows平台下如何使用Android(安卓)NDK
  2. Android中APK安装过程及原理解析
  3. 【Based Android】让你的android应用使用可爱的iphone备忘录字体
  4. Android(安卓)驱动之旅: 第二章 -- 在Android(安卓)系统中增加C
  5. Android合并两个APP的具体做法(掌握)
  6. Android--修改ListView的点击效果
  7. mybatisplus的坑 insert标签insert into select无参数问题的解决
  8. python起点网月票榜字体反爬案例
  9. NPM 和webpack 的基础使用

随机推荐

  1. MySQL 使用DQL命令查询数据的实现方法
  2. MySQL5.6解压版服务无法启动之系统错误10
  3. MySQL InnoDB MRR优化指南
  4. MySQL索引不会被用到的情况汇总
  5. MySQL性能优化神器Explain的基本使用分析
  6. CentOS 安装redis和MySQL
  7. 简单谈谈MySQL数据透视表
  8. MySQL中USING 和 HAVING 用法实例简析
  9. MYSQL数据库表结构优化方法详解
  10. SSM实现mysql数据库账号密码密文登录功能