Android移动应用设计与开发 教学课件 ppt 作者 黄宏程 胡敏 陈如松 Android移动应用设计与开发--第08章

上传人:E**** 文档编号:89342252 上传时间:2019-05-23 格式:PPT 页数:31 大小:1.30MB
返回 下载 相关 举报
Android移动应用设计与开发 教学课件 ppt 作者  黄宏程 胡敏 陈如松 Android移动应用设计与开发--第08章_第1页
第1页 / 共31页
Android移动应用设计与开发 教学课件 ppt 作者  黄宏程 胡敏 陈如松 Android移动应用设计与开发--第08章_第2页
第2页 / 共31页
Android移动应用设计与开发 教学课件 ppt 作者  黄宏程 胡敏 陈如松 Android移动应用设计与开发--第08章_第3页
第3页 / 共31页
Android移动应用设计与开发 教学课件 ppt 作者  黄宏程 胡敏 陈如松 Android移动应用设计与开发--第08章_第4页
第4页 / 共31页
Android移动应用设计与开发 教学课件 ppt 作者  黄宏程 胡敏 陈如松 Android移动应用设计与开发--第08章_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《Android移动应用设计与开发 教学课件 ppt 作者 黄宏程 胡敏 陈如松 Android移动应用设计与开发--第08章》由会员分享,可在线阅读,更多相关《Android移动应用设计与开发 教学课件 ppt 作者 黄宏程 胡敏 陈如松 Android移动应用设计与开发--第08章(31页珍藏版)》请在金锄头文库上搜索。

1、Android 移动应用设计与开发,第8章 数据存储和提供器,8.1 SharedPreference存储 8.2 SQLite存储 8.2.1 SQLite简介 8.2.2 SQLite使用 8.3 ContentProvider存储 8.4 文件存储,本章导读,第8章 数据存储和提供器,作为一个完整的应用程序,数据的存储与操作是必不可少的。Android系统为我们提供了四种数据存储方式,分别是:SharedPreference、SQLite、File和ContentProvider。,8.1 SharedPreference存储,通常很多软件都会有配置文件,里面存放该程序运行当中的各个属性

2、值,由于其配置信息并不多,所有通常不采用数据库的存储方式,因此我们利用SharedPreferences中键值对(key-value)这种一一对应的关系来存放这些配置信息。 SharedPreferences将数据以键值对(key-value)的形式保存至xml文件中,而生成的xml文件保存于/data/data/程序包名(package nam)/shared_prefs目录下。SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据,但只能保存基本类型的值 。,8.1 SharedPreference存储,代码如下 项目名:com.androidbook.shared

3、preferencetest 案例:使用SharedPreferences存储基本数据类型 SharedPreferences sharedPreferences = getSharedPreferences(“type“, Context.MODE_APPEND); Editor editor = sharedPreferences.edit(); / String字符串型 editor.putString(“String“, “words“); / Boolean布尔型 editor.putBoolean(“Boolean“, true); / Integer整型 editor.putIn

4、t(“Integer“, 1); / Long长整型 editor.putLong(“Long“, 1000000); / Float浮点数型 editor.putFloat(“Float“, 3.5f); mit();,生成的SharedPreferences文件名为type.xml,保存在应用程序文件夹下的shared_prefs 。从type.xml文件中可以看到这些存储数据的呈现方式如下: 项目名:com.androidbook.sharedpreferencetest 案例:SharedPreferences数据类型结构type.xml内容 words ,8.1 SharedPref

5、erence存储,SharedPreferences对象的常用方法有以下几种:,8.1 SharedPreference存储,SharedPreferences.Editor对象的常用方法,8.1 SharedPreference存储,使用SharedPreferences保存键值对(key-value)的步骤如下:,1,使用Activity类的getSharedPreferences(String name, int mode)方法获得SharedPreferences对象,其中存储键值对(key-value)的文件的名称由getSharedPreferences方法的name指定,mode

6、则指定打开方式 。,2,使用SharedPreferences的edit()方法获得SharedPreferences.Editor对象。,3,通过SharedPreferences.Editor的putXxx(String key,Xxx value)方法写入键值对(key-value)。,4,通过SharedPreferences.Editor的commit()方法提交保存键值对(key-value)。,8.1 SharedPreference存储,使用SharedPreferences读取键值对(key-value)的方法: :,1,使用Activity类的getSharedPrefer

7、ences(String name,int mode)方法获得所需读取的SharedPreferences对象,与上述保存键值对(key-value)的第一步相同。,2,使用SharedPreferences接口的getXXX(String key,Xxx value)方法,可以方便的获得对应键(key)的值(value)。,4,8.2.1 SQLite简介,SQLite是一种轻量级数据库系统,以嵌入式操作系统为设计目标,占用资源低,因此选择其作为手机操作系统的本地数据库,此外它还是开源的,任何人都可以使用。许多开源项目((Mozilla,PHP,Python)都使用了SQLite,同样And

8、roid运行的环境包含了完整的SQLite。 SQLite由以下几个组件组成:SQL编译器、内核、后端以及附件。 SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展SQLite的内核变得更加方便。虽然SQLite基本上符合SQL-92标准,但是SQLite和其他数据库最大的不同就是对数据类型的支持,此外SQLite也不支持一些标准的SQL功能,特别是外键约束(FOREIGNKEY constrains),嵌套transcaction和RIGHTOUTERJOIN和FULLOUTERJOIN,还有一些ALTERTABLE功能。除了上述功能外,SQLite是一个完整的SQL

9、系统,拥有完整的触发器,交易等等。,8.2.2 SQLite使用,SQLite和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在CREATETABLE语句中指定某列的数据类型。 可以指定以下几种列的类型: TEXT;NUMERIC;REAL;INTEGER;NONE 实际上,SQLite其内部仅有下列五种存储值的类型: NULL;INTEGER;REAL;TEXT;BLOB,8.2.2 SQLite使用,在Android中,SQLite的使用涉及两个重要的类,SQLiteDatabase和SQLiteOpenHelper: 1、SQLiteOpenHelper 具体方法:,8.2

10、.2 SQLite使用,2、SQLiteDatabase具体方法:,8.3 ContentProvider存储,ContentProvider是Android平台中,在不同应用程序之间实现数据共享的唯一机制。一个应用程序如果需要让别的应用程序能够操作自己的数据,即可采用这种机制。 一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据完全暴露出去,而且ContentProvider是以类似数据库中表的方式将数据暴露。那么外界获取其提供的数据,也就与从数据库中获取数据的操作基本一样。 这时就可以用到另外一个类(ContentResolver),通过URI来操作数据从而实现对

11、数据的处理。,8.3 ContentProvider存储,Uri是一个通用资源标志符,将其分为A、B、C、D,4个部分: A:无法改变的标准前缀,如;“content:/“、“tel:/“等。当前缀是“content:/“时,说明可通过ContentProvider控制这些数据; B:URI的标识,它通过authorities属性声明,限制一个类的访问,用于限制是哪个ContentProvider能够有权限提供这些数据。对于第三方应用程序,为了保证URI标识的唯一性,它必须是一个完整的类名。 例如:“content:/com.androidbook.client.contentprovider

12、.DataProvider“; C:路径,可以近似的理解为需要操作的数据库中表的名字。 如:“content:/com.androidbook.client.contentprovider.DataProvider/Topic“中的Topic; D:如果URI中包含表示需要获取的记录的ID,则就返回该ID对应的数据,如果没有ID,就表示返回全部。,8.3 ContentProvider存储,Android系统提供了两个用于操作Uri的工具类,分别为UriMatcher和ContentUris: 1、UriMatcher常用方法:,8.3 ContentProvider存储,2、ContentU

13、ris常用方法:,8.3 ContentProvider存储,ContentProvider核心类 ContentProvider常用方法:,8.3 ContentProvider存储,8.3 ContentProvider存储,具体该如何公开数据并且在外部对其进行操作呢?步骤为,1,在当前应用程序中定义一个ContentProvider类,继承ContentProvider并重写它的几个抽象方法。,2,首先要定义UriMatcher类,分别加入对应的Uri以及要返回的code值。在onCreate方法中,获得大案例的client数据库辅助类DatabaseHelper。在insert、del

14、ete、update、query方法中根据另一个应用程序调用的Uri,判别是对Topic表还是PrivateLetter表进行插入操作。,3,需要在当前应用程序的AndroidManifest.xml中注册此ContentProvider。android:authorities属性定义了是哪个ContentProvider提供这些数据,格式为:provider所在的包的名字+provider本身定义的名称。而android:name则指定具体的ContentProvider类。,4,其他应用程序通过ContentResolver和Uri来获取此ContentProvider的数据,8.4文件存

15、储,一般使用SharedPreferences方式存储的内容是一些键值对(key-value),使用SQLite数据库来操作存储数据表,而有时候我们却要存储的是一些文件,这时候我们可以采用文件存储的方式。 文件存储可以分成两类 : 1、将文件存储在应用程序内,在Android系统中,这些文件保存在/data/data/files/目录下,称为File存储; 2、将文件存储在外接的存储设备中,也就是存储在SDCard存储卡中,称为SDCard存储。,8.4文件存储,首先介绍File存储常用操作: openFileOutput(String name, int mode) 保存文件内容,打开指定的

16、私有文件输出流,返回值类型为FileOutputStream,name为要打开的文件名,不能包含路径分隔符,mode为操作模式,有以下几种保存模式: Environment.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下写入的内容会覆盖原文件的内容。 Environment.MODE_APPEND:检查文件是否存在,存在就往文件追加内容,否则就创建新文件。 Environment.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。 Environment.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。 在使用模式时,可以用“+“来选择多种模式,比如openFileOutput(FileName, Environment.MODE_PRIVATE+MODE_WORLD_READABLE)。,8.4文件存储,openFileInput(String name) 读取文件内容,打开指定的私有文件输出流,返回

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

当前位置:首页 > 高等教育 > 大学课件

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