Android数据存储和访问

上传人:我*** 文档编号:134404452 上传时间:2020-06-05 格式:PPT 页数:170 大小:2MB
返回 下载 相关 举报
Android数据存储和访问_第1页
第1页 / 共170页
Android数据存储和访问_第2页
第2页 / 共170页
Android数据存储和访问_第3页
第3页 / 共170页
Android数据存储和访问_第4页
第4页 / 共170页
Android数据存储和访问_第5页
第5页 / 共170页
点击查看更多>>
资源描述

《Android数据存储和访问》由会员分享,可在线阅读,更多相关《Android数据存储和访问(170页珍藏版)》请在金锄头文库上搜索。

1、数据存储和访问inAndroid 史永 回顾 线程是独立的程序单元 多个线程可以并行工作每个线程都有一个消息队列 用于不同的线程之间传递消息 无论是本线程的还是其它线程 都不能直接处理消息队列中的消息 而是需要通过在线程内部定义一个Handler类对象来处理消息队列 一个Thread只能包含一个Handler对象 在实际应用中 读取消息队列一般需要循环执行 即不断地从消息队列中获取消息并进行相应处理 这就又需要一个Looper对象 本章任务 本章任务 本章任务 本章相关词汇 蓝色为关键字 目标 掌握SharedPreferences的使用方法掌握各种文件存储的区别与适用情况了解SQLite数据

2、库的特点和体系结构掌握SQLite数据库的建立和操作方法理解ContentProvider的用途和原理掌握ContentProvider的创建与使用方法 SharedPreferences 1简单存储 1 1SharedPreferencesSharedPreferences是一种轻量级的数据保存方式通过SharedPreferences可以将NVP Name ValuePair 名称 值对 保存在Android的文件系统中 而且SharedPreferences完全屏蔽的对文件系统的操作过程开发人员仅是通过调用SharedPreferences对NVP进行保存和读取 1 1SharedPre

3、ferencesSharedPreferences不仅能够保存数据 还能够实现不同应用程序间的数据共享SharedPreferences支持三种访问模式私有 MODE PRIVATE 仅有创建程序有权限对其进行读取或写入全局读 MODE WORLD READABLE 不仅创建程序可以对其进行读取或写入 其他应用程序也读取操作的权限 但没有写入操作的权限全局写 MODE WORLD WRITEABLE 创建程序和其他程序都可以对其进行写入操作 但没有读取的权限 1 1SharedPreferences在使用SharedPreferences前 先定义SharedPreferences的访问模式下

4、面的代码将访问模式定义为私有模式有的时候需要将SharedPreferences的访问模式设定为即可以全局读 也可以全局写 这样就需要将两种模式写成下面的方式 1 1SharedPreferences定义SharedPreferences的名称 这个名称与在Android文件系统中保存的文件同名 因此 只要具有相同的SharedPreferences名称的NVP内容 都会保存在同一个文件中为了可以使用SharedPreferences 需要将访问模式和SharedPreferences名称作为参数 传递到getSharedPreferences 函数 并获取到SharedPreferences

5、对象 1 1SharedPreferences在获取到SharedPreferences对象后 则可以通过SharedPreferences Editor类对SharedPreferences进行修改 最后调用commit 函数保存修改内容SharedPreferences广泛支持各种基本数据类型 包括整型 布尔型 浮点型和长型等等 1 1SharedPreferences如果需要从已经保存的SharedPreferences中读取数据 同样是调用getSharedPreferences 函数 并在函数的第1个参数中指明需要访问的SharedPreferences名称 最后通过get 函数获取

6、保存在SharedPreferences中的NVPget 函数的第1个参数是NVP的名称第2个参数是在无法获取到数值的时候使用的缺省值 1 2示例通过SimplePreferenceDemo示例介绍具体说明SharedPreferences的文件保存位置和保存格式下图是SimplePreferenceDemo示例的用户界面用户在界面上的输入的信息 将通过SharedPreferences在Activity关闭时进行保存 当应用程序重新开启时 保存在SharedPreferences的信息将被读取出来 并重新呈现在用户界面上 1 2示例SimplePreferenceDemo示例运行后 通过Fi

7、leExplorer查看 data data下的数据 Android为每个应用程序建立了与包同名的目录 用来保存应用程序产生的数据 这些数据包括文件 SharedPreferences文件和数据库等SharedPreferences文件就保存在 data data shared prefs目录下 1 2示例在本示例中 shared prefs目录下生成了一个名为SaveSetting xml的文件这个文件就是保存SharedPreferences的文件 文件大小为170字节 在Linux下的权限为 rw rw rw 1 2示例在Linux系统中 文件权限分别描述了创建者 同组用户和其他用户对文

8、件的操作限制 x表示可执行 r表示可读 w表示可写 d表示目录 表示普通文件 因此 rw rw rw 表示SaveSetting xml可以被创建者 同组用户和其他用户进行读取和写入操作 但不可执行产生这样的文件权限与程序人员设定的SharedPreferences的访问模式有关 rw rw rw 的权限是 全局读 全局写 的结果如果将SharedPreferences的访问模式设置为私有 则文件权限将成为 rw rw 表示仅有创建者和同组用户具有读写文件的权限 1 2示例SaveSetting xml文件是以XML格式保存的信息 内容如图如下 1 2示例SimplePreferenceDem

9、o示例在onStart 函数中调用loadSharedPreferences 函数 读取保存在SharedPreferences中的姓名 年龄和身高信息 并显示在用户界面上当Activity关闭时 在onStop 函数调用saveSharedPreferences 保存界面上的信息SimplePreferenceDemo java的完整代码 1 2示例 1 2示例 1 2示例 1 2示例示例SharePreferenceDemo将说明如何读取其他应用程序保存的SharedPreferences数据下图是SharePreferenceDemo示例的用户界面示例将读取SimplePreferenc

10、eDemo示例保存的信息 并在程序启动时显示在用户界面上 1 2示例下面给出SharePreferenceDemo示例的核心代码 1 2示例第8行代码调用了createPackageContext 获取到了SimplePreferenceDemo示例的Context第8行代码第1个参数是SimplePreferenceDemo的包名称 在代码第1行进行了定义第2个参数Context CONTEXT IGNORE SECURIT表示忽略所有可能产生的安全问题 这段代码可能引发异常 因此必须防止在try catch中 1 2示例在代码第12行 通过Context得到了SimplePreferenc

11、eDemo示例的SharedPreferences对象 同样在getSharedPreferences 函数中 需要将正确的SharedPreferences名称传递给函数访问其他应用程序的SharedPreferences必须满足三个条件共享者需要将SharedPreferences的访问模式设置为全局读或全局写访问者需要知道共享者的包名称和SharedPreferences的名称 以通过Context获得SharedPreferences对象访问者需要确切知道每个数据的名称和数据类型 用以正确读取数据 文件存储 2文件存储 Android使用的是基于Linux的文件系统 程序开发人员可以建

12、立和访问程序自身的私有文件 也可以访问保存在资源目录中的原始文件和XML文件 还可以在SD卡等外部存储设备中保存文件 2文件存储 2 1内部存储Android系统允许应用程序创建仅能够自身访问的私有文件 文件保存在设备的内部存储器上 在Linux系统下的 data data files目录中Android系统不仅支持标准Java的IO类和方法 还提供了能够简化读写流式文件过程的函数主要介绍的两个函数openFileOutput openFileInput 2文件存储 2 1内部存储openFileOutput 函数openFileOutput 函数为写入数据做准备而打开的应用程序私文件 如果指

13、定的文件不存在 则创建一个新的文件openFileOutput 函数的语法格式如下第1个参数是文件名称 这个参数不可以包含描述路径的斜杠第2个参数是操作模式函数的返回值是FileOutputStream类型 2文件存储 2 1内部存储openFileOutput 函数Android系统支持四种文件操作模式 2文件存储 2 1内部存储openFileOutput 函数使用openFileOutput 函数建立新文件的示例代码如下第1行代码定义了建立文件的名称fileDemo txt第2行代码使用openFileOutput 函数以私有模式建立文件第4行代码调用write 函数将数据写入文件第5行

14、代码调用flush 函数将所有剩余的数据写入文件第6行代码调用close 函数关闭FileOutputStream 2文件存储 2 1内部存储openFileOutput 函数为了提高文件系统的性能 一般调用write 函数时 如果写入的数据量较小 系统会把数据保存在数据缓冲区中 等数据量累积到一定程度时再一次性的写入文件中由上可知 在调用close 函数关闭文件前 务必要调用flush 函数 将缓冲区内所有的数据写入文件 2文件存储 2 1内部存储openFileInput 函数openFileInput 函数为读取数据做准备而打开应用程序私文件openFileInput 函数的语法格式如下

15、第1个参数也是文件名称 同样不允许包含描述路径的斜杠 2文件存储 2 1内部存储openFileInput 函数使用openFileInput 函数打开已有文件的示例代码如下上面的两部分代码在实际使用过程中会遇到错误提示 因为文件操作可能会遇到各种问题而最终导致操作失败 因此代码应该使用try catch捕获可能产生的异常 2文件存储 2 1内部存储InternalFileDemo示例用来演示在内部存储器上进行文件写入和读取InternalFileDemo示例用户界面如图 2文件存储 2 1内部存储InternalFileDemo示例的核心代码 2文件存储 2 1内部存储 2文件存储 2 1内

16、部存储 2文件存储 2 1内部存储程序运行后 在 data data edu hrbeu InternalFileDemo files 目录下 找到了新建立的fileDemo txt文件 2文件存储 2 1内部存储fileDemo txt文件fileDemo txt从文件权限上进行分析 rw rw 表明文件仅允许文件创建者和同组用户读写 其他用户无权使用文件的大小为9个字节 保存的数据为 Somedata 2文件存储 2 2外部存储Android的外部存储设备指的是SD卡 SecureDigitalMemoryCard 是一种广泛使用于数码设备上的记忆卡不是所有的Android手机都有SD卡 但Android系统提供了对SD卡的便捷的访问方法 2文件存储 2 2外部存储SD卡适用于保存大尺寸的文件或者是一些无需设置访问权限的文件 可以保存录制的大容量的视频文件和音频文件等SD卡使用的是FAT FileAllocationTable 的文件系统 不支持访问模式和权限控制 但可以通过Linux文件系统的文件访问权限的控制保证文件的私密性Android模拟器支持SD卡 但模拟器中没有缺省的S

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号