数据存储

数据存储

Android的数据存储技术

  1. 本地数据存取技术
    SharedPreferences(XML格式数据)
    File(二进制数据为 主)
    SQLite(关系型数据)
  2. 远程数据存取技术
    基于Socket使用TCP/IP直接访问网络服务器(数据从 数据源直接传送到目的地)。
    基于HTTP相关协议访问Web服务(从互联网上获取HTML、json/xml、二进制格式的数据)

SharedPreferences

  1. 概念
    是一种轻量级的数据存储方式,可以将键/值对的数据,保存在Android的文件系统中,完全屏蔽了文件系统的操作过程。
    支持整型、布尔型、浮点型、长整形、字符串数据类型,特别适合用于保存少量数据,更新不频繁且安全性要求不高的场合,如:软件配置参数。
  2. 基本特点
    数据以"key -value"方式存储与处理。
    数据明文存储于xml文件中。
    Android内置相应数据存取组件,使用简单方便。
  3. 使用场景
    适合于保存少量的数据,更新不频繁,不需要进行复杂的查询,并且对安全性没有太大要求的场合。
  4. 存储数据步骤
    用SharedPreferences对象的方法edit()获得一个Editor对象。
    通过putString以键值<String key, String value>方式把字符串值写入Editor对象中,其他类型数据调用相应的put()方法。
    最后利用commit()或apply()方法提交数据。
  5. 获得其对象的方法
    Context.getSharedPreferences(String name, int mode)。
    Activity.getPreferences(int mode):只能在当前activity使用,一般不用。
    MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE两种模式已经在4.2版本废除。
  6. 数据读取
    调用getSharedPreferences()函数。
    通过get()函数获取保存在SharedPreferences中的键值对。

文件存储

  1. 基本特点
    可以保存任意类型、任意大小的数据,但是 需要自 行编写数据解析代码
    Android使用标准Java编程方式,通过Stream(及派生或组合类型)存取底层文件
  2. 使用场景
    保存二进制的,数据量较大的数据( 比如照片 、视频等 )。
    有特殊格式的文本型数据。
    有特殊处理需求的数据(比如数据需要加密后存储 )。
    3.存储系统
    • 本机内置系统存储
      /data/data//。
      仅供App自己使用,属"私有数据"。
      App卸载时自动删除。
    • 本机外部系统存储
      /storage/emulated//。
      存储照片、音乐等,属"共享数据"。
      App卸载时保留。
    • 外部可扩充存储
      SD卡上的任意文件夹。
      可供任意App访问。
      App卸载后仍然保存。
      不在配置SD卡。
    1. 存储系统的重要文件夹
      /data/app:保存各个应用
      /data/data:各个应用保存私有数据的地方
      /mnt/sdcard:代表SD卡的根目录
      /system:对应用只读,保存Android操作系统文件21

数据库存储SQLite

  1. 概念
    Android内置对SQLite的支持,在android.database.sqlite包中提供了相应的组件。
    SQLite是一种单用户单文件型数据 库,文件保存于本机 内置存储空间,占用系统资源小,适合于手机这种内存受限的运行环境。
    如果其它App需要访问这些数据,可以使 用ContentProvider。
  2. 使用场景
    以文本型数据为主。
    需要进行频繁的CRUD操作。
  3. 数据类型
    NULL
    INTEGER:整数
    REAL:浮点数
    TEXT:文本与字符串
    BLOB:二进制类型的数据
  4. 编写方法
    直接访问:使用SQLiteDatabase类
    初步封装:使用SQLiteOpenHelper类
    自定义:我们自己封装数据存取代码
  5. SQLiteOpenHelper类
    SQLiteOpenHelper类是一个用于创建或打开数据库的辅助类。 SQLiteOpenHelper类是一个抽象类,包含两个重要的方法:1.onCreate(SQLiteDatabasedb):新建数据库时调用2.onUpgrade(SQLiteDatabasedb, int oldVersion, int newVersion):数据库版本升级时调用
    构造出实例后调用getWritableDatabase()或getReadableDatabase()方法获取Database对象
    创建的数据库存放目录:/data/data/packageName/databases/36

ContentProvider3

  1. ContentProvider是Android的四大组件之一
  2. 不同应用程序之间数据交换的标准API,实现数据在不同应用程序直接的共享。
  3. 一个程序可以通过ContentProvider的抽象接口,将自己的数据以Uri形式暴露出去。其它应用程序可以使用ContentResolver,根据Uri访问操作指定数据,对应用中的数据进行增删改查。
  4. 标准的ContentProvider:Android提供一些标准ContentProvider,如:联系人信息、图片库等,可以使用这些ContentProvider访问设备上存储的联系人信息、图片、音频、视频等
  5. 开发流程
    定义继承ContentProvider的自定义类。
    在AndroidManifest.xml用标签注册。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值