第七章 Android数据存储图文图文课件
- 格式:pptx
- 大小:1.05 MB
- 文档页数:27
Android提供几种保存持久化应用程序数据的选择。
依赖具体的需求来选择解决适合的方案,如数据应该是应用程序私有的还是共享的,以及数据所需要的存储空间等。
以下是可选择的数据存储方案:共享偏好(Shared Preferences)用键---值对的形式保存私有的原始数据。
内部存储(Internal Storage)在设备的内存上保存私有的数据。
外部存储(External Storage)在共享的外部存储器上保存公共的数据。
SQLite数据库在私有的数据库中保存结构化的数据。
网络连接(Network Connection)把数据保存在自己的互联网服务器上。
Android提供了内容提供器(content provider),能够你的私有数据公开给其他应用程序。
内容提供器是一种公开应用程序数据的读写访问权限的可选组件,这种读写访问会受到你所施加的任何限制的影响。
使用共享偏好SharedPreference类提供了一个一般性的框架,它允许用原始类型数据的键---值对的形式来保存和获取持久化的数据。
使用SharedPreference能够保存任意类型的原始类型数据:布尔型、浮点型、整数型、以及字符串。
这种数据会跨越用户的会话周期被持久化保存(即使是应用程序进程被杀死)。
有两种方法来为应用程序获取SharedPreferences对象:1.getSharedPreferences()方法---如果需要多个用名称来标识的偏好文件,就要使用这个方法,它的第一个参数要指定偏好文件的名称。
2.getPreferences()方法---如果仅需要针对Activity的一个偏好文件,就使用这个方法。
因为这个方法仅返回当前Activity的偏好文件,不需要提供偏好文件的名称。
以下是向偏好文件中写入数据的方法:1.调用edit()方法来获取一个SharedPreferences.Editor对象;2.调用诸如putBoolean()和putString()等方法来添加要保存的值;3.调用commit()方法来提交要保存的新值。
第七章 Android 数据存储7.1 File存储Android上的文件存储与J2SE当中的文件存储类似,支持以文件的输入输出流来读取文件。
7.1.1 文件的读写Android在Context类当中提供了打开文件输入和输出流的方法。
这连个MODE_APPEND 、 MODE_WORLD_READABLE 、 MODE_WORLD_WRITEABLE当中的一种,第一种mode是表示该文件只能被当前程序读写,第二种是以追加的方式打开文件。
第三种是文件内容可以被其它程序读取,第四种是文件内容可以被其他程序读写。
下面通过一个实例来看如何读写文件。
1.创建一个名为TestFile的项目。
2.打开Activity文件,添加代码如下。
从上代码不难发现跟J2SE当中的IO数据读取基本类似。
7.1.2 读写SD卡上文件上小节主要介绍的是应用程序数据文件夹里的文件读取,这种存储方式有一定的限制,因为手机本身内置的存储空间是有限的,为了能够存储更多的数据,通常用户都会为手机添加一张SD卡,SD卡可以大大的扩充手机的存储能力。
本小节将重点来介绍如何读取SD卡上的文件。
Environment类中提供了方法来判断和获取SD卡的存在和获取路径。
需要特别注意的是在SD卡上读取文件前必须在AndroidManifest文件中先添加相应的权限。
下面通过实例来具体了解。
1.创建一个名为TestSDFile的项目。
2.打开AndroidManifest文件,添加权限如下第八行。
3.打开main.xml文件,添加代码内容如下。
4.新建一个名为FileUtil类,封装读写数据方法,如下图。
5.打开Activity文件,添加代码内容如下。
6.运行应用代码,输入内容如下图。
7.2 SQLite 数据库SQLite是Android系统当中的一个轻量级的数据库。
是一款开源的嵌入式数据库引擎,对多数的SQL92标准提供了支持,相较于其它大型的数据库来说,SQLite 是一个轻量级的数据库,它所占的资源小,处理速度快。