Android几种数据存储方式的应用场景

标签: android xml SQLite Sharedpreferences ContentProvider
760人阅读 评论(0) 收藏 举报
分类:
        作为一个完整的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、文件存储、SQLite、 Content Provider。对这几种方式的不同和应用场景整理如下。

第一种: 使用SharedPreferences存储数据

  适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果、小游戏的玩家积分等),解锁口 令密码等
  核心原理:保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。通过DDMS的File Explorer面板,展开文件浏览树,很明显SharedPreferences数据总是存储在/data/data//shared_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数据能被其他应用程序读,写
  SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。

第二种: 文件存储数据

  可以在设备本身的存储设备或者外接的存储设备中创建用于保存数据的文件。同样在默认的状态下,文件是不能在不同的程序间共享。
  写文件:调用Context.openFileOutput()方法根据指定的路径和文件名来创建文件,这个方法会返回一个FileOutputStream对象。
  读取文件:调用Context.openFileInput()方法通过制定的路径和文件名来返回一个标准的Java FileInputStream对象。

第三种:SQLite存储数据

  SQLite Database数据库。Android对数据库的支持很好,它本身集成了SQLite数据库,每个应用都可以方便的使用它,或者更确切的说,Android完全依赖于SQLite数据库,它所有的系统数据和用到的结构化数据都存储在数据库中。 它具有以下优点: a. 效率出众,这是无可否认的 b. 十分适合存储结构化数据 c. 方便在不同的Activity,甚至不同的应用之间传递数据。  

第四种:ContentProvider

  Android系统中能实现所有应用程序共享的一种数据存储方式,由于数据通常在各应用间的是互相私密的,所以此存储方式较少使用,但是其又是必不可少的一种存储方式。例如音频,视频,图片和通讯录,一般都可以采用此种方式进行存储。每个ContentProvider都会对外提供一个公共的URI(包装成Uri对象),如果应用程序有数据需要共享时,就需要使用ContentProvider为这些数据定义一个URI,然后其他的应用程序就通过Content Provider传入这个URI来对数据进行操作。
  总结一下,文件适用于存储一些简单的文本数据或者二进制数据,SharedPreferences适用于存储一些键值对,而数据库则适用于那些复杂的关系型数据。
查看评论

常见的数据库应用及应用场景

> Android/iOS -- SQLite 主流的Sqlite数据加密技术就是sqlitecipher > orcale > MySQL > DB2...
  • ShareUs
  • ShareUs
  • 2016-08-22 12:53:50
  • 3750

Android 数据存储五种方式使用与总结

部分内容来源于官方文档翻译, 对SharedPreferences; 文件存储(内部存储读写,保存编译文件,保存内存缓存文件,外部存储读写); SQLite使用; ContentProvider使用;...
  • Amazing7
  • Amazing7
  • 2016-05-18 16:06:06
  • 36533

Android中有几种数据存储方式,每种方式有哪些特点?

Android中有5种数据存储方式,分别为文件存储、SQLite数据库、SharedPreferences、ContentProvider、网络。每种存储方式的特点如下: 1)文件存储 文件存储方...
  • liyue199512
  • liyue199512
  • 2016-07-27 12:20:09
  • 3603

android的数据存储方式------5种

android数据获取,和存储的五种方式
  • mybook1122
  • mybook1122
  • 2013-09-04 00:07:11
  • 2713

Android数据存储几种方式用法总结

Android数据存储几种方式用法总结 1、概述   Android提供了5种方式来让用户保存持久化应用程序数据。根据自己的需求...
  • xiyiyindie
  • xiyiyindie
  • 2016-12-11 12:16:11
  • 2002

android数据存储方式大全

  • 2011年05月24日 20:47
  • 63KB
  • 下载

Android五种数据存储(数据持久化)方式

1、sharedpreference 共享参数(一般用于保存用户设置偏好); ** * 特点: * (1)以键值对的形式保存到data/data/应用程序包名/shared_prefs目...
  • Normcore_boy
  • Normcore_boy
  • 2016-11-22 10:44:00
  • 528

数据存储---五种存储方式简介

数据存储方式 1 使用SharedPreferences存储数据; 是Android提供的用来存储一些简单配置信息的一种机制,例如:登录用户的用户名与密码。其采用了Map数据结构来存储数据,以键值的方...
  • winnie_hu
  • winnie_hu
  • 2017-04-08 10:22:15
  • 1320

Android中的五种数据存储方式

这五种方式分别是: 1、SharedPreferences(偏好设置),读取XML文件 2、文件存储 (1)assets(程序内部的资源,只能读) (2)data/data/主包名/files目录下的...
  • u013519020
  • u013519020
  • 2016-08-17 19:16:16
  • 1242

安卓中五种数据存储方式

分别是: --SharedPreferences存储; --文件存储; --SQLite数据库存储; --ContentProvider存储; --网络存储; 1.1. SharedPreferenc...
  • zsr0526
  • zsr0526
  • 2016-11-14 23:41:59
  • 1089
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 45万+
    积分: 5430
    排名: 6204
    声明
    我的GitHub

    我的简书

    我的博客园

    我的个人站

    如果,您希望更容易地发现我的新博客,不妨关注一下我【关注】
    如果,您对我的博客内容感兴趣,请继续关注我的后续博客,我是【Seachal】

    本站内文章为网络自学笔记,个别内容及图片引用自网络,如有侵权请联系本人,本人将会在第一时间删除侵权内容。欢迎各位博友评论交流 !

    博客专栏