关闭

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

标签: androidxmlSQLiteSharedpreferencesContentProvider
718人阅读 评论(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适用于存储一些键值对,而数据库则适用于那些复杂的关系型数据。
2
0
查看评论

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

作为一个完整的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、SQLite、 Content Provider、File。对这几种方式的不同和应用场景整理如下。第一种: 使用SharedPreferences存储数据  ...
  • goodlixueyong
  • goodlixueyong
  • 2015-07-24 15:03
  • 9094

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

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

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

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

Android中常用的五种数据存储方式

1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据
  • qq_22157767
  • qq_22157767
  • 2016-06-17 16:50
  • 5635

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

Android数据存储几种方式用法总结 1、概述   Android提供了5种方式来让用户保存持久化应用程序数据。根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存储空间等,分别是: &#...
  • xiyiyindie
  • xiyiyindie
  • 2016-12-11 12:16
  • 1510

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

Android中有5种数据存储方式,分别为文件存储、SQLite数据库、SharedPreferences、ContentProvider、网络。每种存储方式的特点如下: 1)文件存储 文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与Java中实现I/O的程序是完全一样...
  • liyue199512
  • liyue199512
  • 2016-07-27 12:20
  • 3049

Android 四大数据存储方式

=================================================================================================================================== android 数据存储: 作为...
  • Mr_ZJC
  • Mr_ZJC
  • 2014-11-23 19:15
  • 2918

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

本文介绍Android中的5种数据存储方式。   数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentPr...
  • DQ1005
  • DQ1005
  • 2015-06-17 20:41
  • 1590

android的几种数据存储方式

android的几种数据存储方式 在android中我们学习过的数据存储大致分为5种 1. SharedPreferences存储数据  SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗...
  • qq_39776624
  • qq_39776624
  • 2017-10-07 18:50
  • 86

android数据的几种存储方式

1.sqlite 数据库存储。支持SQL语句。 2.SharedPreference 基于xml,常用于存储简单的数据,这些数据用数据库存储划不来,跟数据库操作比起来得不偿失,比如简单配置信息等。存储位置在/data/data//shared_prefs目录下。SharedPreference...
  • huabuduo
  • huabuduo
  • 2014-11-29 20:48
  • 98
    个人资料
    • 访问:394388次
    • 积分:4980
    • 等级:
    • 排名:第6746名
    • 原创:107篇
    • 转载:104篇
    • 译文:4篇
    • 评论:175条
    声明
    我的简书

    我的GitHub

    我的博客园

    如果,您希望更容易地发现我的新博客,不妨关注一下我【关注】
    如果,您对我的博客内容感兴趣,请继续关注我的后续博客,我是【Seachal】
    本站内文章为网络自学笔记,个别内容及图片引用自网络,如有侵权请联系本人,本人将会在第一时间删除侵权内容。欢迎各位博友评论交流 !

    博客专栏