Android数据存储操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android数据存储方式
ContentProvider ∟query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder):通过Uri进行查询,返回一个 Cursor; ∟insert(Uri uri, ContentValues valueLeabharlann Baidu):将一组数据插入到Uri指定 的地方; ∟update(Uri uri, ContentValues values, String where, String[] selectionArgs):更新Uri指定位置的数据; ∟delete(Uri uri, String where, String[] selectionArgs):删除指定Uri 并且符合一定条件的数据。
Android数据存储方式
ContentProvider ∟Android和其他OS不太一样,数据在Android中是私有的,当然 这些数据包括文件数据和数据库数据及一些其他类型的数据; ∟难道两个程序之间就没有办法对数据进行交换?Android解决这 个问题主要就是靠ContentProvider。一个Content Provider类 实现了一组标准的方法接口,从而能够让其他的应用保存或读 取此Content Provider的各种数据类型,也就是说一个程序可以 通过实现一个Content Provider的抽象接口将自己的数据暴露出 去。外界是看不到的,也不用看到这个应用暴露的数据在应用 当中是如何存储的,或者是用数据库存储还是用文件存储,还 是通过网上获得,这些都不重要,重要的是外界可以通过这一 套标准及统一的接口和程序里的数据打交道,可以读取程序的 数据,也可以删除这些数据,当然中间也会涉及一些权限的问 题;下页将列举一些较常用的接口:
Android数据存储方式
SQLite存储方式 ∟ SQLite是轻量级的、嵌入式的、关系型数据库,目前已经在 iPhone、Android等手机系统中使用,而且被其他的公司广泛使 用,比如说Adobe等公司; ∟数据存储是Android应用的另外一个方面,用户可以将自己的数 据存储到文件系统或者数据库当中,最经常的是用户将自己的 数据存储到SQLite数据库当中。SQLite是Android所带的一个标 准的数据库,它支持SQL语句,是一个轻量级的嵌入式数据库。 ∟添加(insert)、删除(delete)、查询(query)、修改(update)是数据 库的四大基本操作,也是在学习Android SQLite的过程中最为 关注的部分; ∟Android SDK中Android SQLite摘要如下页:
Android数据存储方式
网络存储 ∟前面几种存储方式都是将数据存储在本地设备上,除此之外还 有一种存储(获取)数据的方式,就是通过网络来实现数据的存储 和获取; Note: 在Android早期的版本中,曾经支持XMPP Service和Web Service的远程访问。Android SDK 1.0以后的版本对它以前的 API作了许多变更,Android SDK 1.0以上版本不再支持XMPP Service,而且访问Web Service的API全部变更。 ∟网络存储方式,需要与Android 网络数据包打交道,关于 Android 网络数据包的说明,如下页:
Thank You
© 2009 Mio Technology. All Rights Reserved.
Android数据存储方式
ContentResolver ∟外界的程序通过ContentResolver接口可以访问ContentProvider 提供的数据,在Activity当中通过getContentResolver()可以得到 当前应用的的ContentResolver实例。ContentResolver提供的 接口和ContentProvider中需要实现的接口对应,主要有:
Android数据存储方式
android.database.sqlite
Android数据存储方式
SQLite存储方式 ∟首先关注到的是SQLiteDatabase类,在Android SDK中可以看 其详细说明,其主要接口如下:
∟上述就是数据库的4大基本操作:添加(insert)、删除(delete)、 查询(query)、修改(update)。
Android数据存储方式
ContentValues & Cursor
∟ContentValues就相当于C++中的map[(String key, Integer value)],其主要接口包括put(),get()。再结合insert操作的主要 目的:按照表中数据段将对应的数据项写入到表中,就可以看 出来ContentValues主要是存放表中每个表的数据段,以及其对 应的值。 ∟Cursor也就是查询结果的记录集(Recordset)。从记录集的特征 可以想到其包含的操作应该有:MoveFirst()、MoveLast()、 MoveNext()、Move()、IsLast()、GetColumns()等,而且它还 是个抽象类[abstract class],SQLiteCursor就是其具体的实现。
Android数据存储方式
文件存储
∟ SharedPreferences存储方式非常方便,但只适合存储比较简 单的数据,如果需要存储更多的数据,可行的方式有好几种, 下面先介绍文件存储的方法; ∟文件存储方式是一种较常用的方法,在Android中读取/写入文件 的方法,与Java中实现I/O的程序是完全一样的,提供了 openFileInput()和openFileOutput()方法来读取设备上的文件; Note: 默认情况下,使用openFileOutput方法创建的文件只能被其调 用的应用使用,其他应用无法去读这个文件,如果需要在不同 的应用中共享数据,可以使用ContentProvider实现;
Android数据存储方式
网络存储
∟下表并没有列出所有包,但可以清楚地看到该平台的强大功能。
Android数据存储方式
其他辅助说明
∟所有的数据库文件存放在手机中的 “/data/data/package_name/databases”路径下。 最为重要的一点是:在Android中,所有的应用软件的数据(包 括文件、数据库)为该应用软件所私有的,如果需要在不同的 应用中共享数据,必须使用ContentProvider实现,一个 ContentProvider类实现了一组标准的方法接口,从而能够让其 他的应用保存或读取此ContentProvider的各种数据类型。
Android数据存储方式
SharedPreferences存储 ∟ SharedPreferences是Android提供用来存储一些简单的配置 信息的一种机制;其以键值对(key-value paires)的方式存储, 它是一个轻量级的键值存储机制,例如一些默认欢迎语、登 陆的用户名和密码等。只可以存储基本数据类型,使得我们 可以很方便的读取和存入; Note: Preferences只能在同一个包内使用,不能在不同的包之间使 用;
Android数据存储方式
ContentProvider和ContentResolver中用到的Uri ∟在ContentProvider和ContentResolver中用到的了Uri的形式通 常有两种,一种是指定全部数据,另一种是制定某个ID的数据。 ※content://contacts/people/: 此Uri指定的是全部联系人数据。 ※content://contacts/people/1:此Uri指定的是ID为1的联系人数据。 ∟上边两个类中用到的Uri一般由3部分组成: ※第一部分是“content ://” ※第二部分是要获得数据的一个字符串片段 ※最后是ID(如果没有指定ID,则表示返回全部) ∟由于Uri通常比较长容易出错,且难以理解,所以在Android当中 定义了一些辅助类,并且定义一些常量来代替这些长字符串的 使用,例如下面的代码: ※Contacts.People.CONTENT_URI(联系人的URI)
Android数据存储方式
Android解析
在一个程序里面,某一个activity创建的数据库,其他activity可 以通过contentprovider访问吗 ? ∟当然可以,ContentProvider的主要功能就是应用程序将自己的 数据完全暴露出去给其他应用程序共享,而且无论应用程序的 数据是以什么样的方式存储的(数据库、本地文件、网络文件 等)都会以类似于访问数据库的方式提供给其他程序。比如说 Android 电话薄中联系人的信息,Android 电话薄程序就将自己 可以提供哪些信息、如何提供等写入AndroidManifest.xml;其 他应用程序就可以通过ContentResolver来获取这些数据。
Android数据存储方式
小结
∟本次介绍了如何在Android中实现数据的存储和获取,介绍了轻 量级的SharedPreferences,比较传统的文件存储和数据库存储, 还有Android特有的ContentProvider方式;通过此次介绍,对 Android存储数据方式有了初步的了解,至于在应用程序中使用 哪一种数据存储方式则取决于开发者的具体需求;
Android数据存储-概述
概述 ∟典型的桌面操作系统提供一种公共文件系统---任何应用软件都 可以使用它来存储和读取文件,该文件也可以被其他的应用软 件所读取(会有一些权限控制设定); ∟Android采用了一种不同的系统,所有的应用软件数据(包括文 件)为该应用软件所私有;而Android同样也提供了一种标准方 式供应用软件将私有数据开放给其他应用软件; ∟在Android中,可供选择的存储方式有SharedPreference、文件 存储、SQLite数据库方式、内容提供器(Content provider)和网 络,本次课将描述一个应用软件存储和获取数据、开放数据给 其他应用软件、从其他应用软件请求数据并且开放他们的多种 方式。
∟query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder):通过Uri进行查询,返回一个 Cursor; ∟insert(Uri uri, ContentValues values):将一组数据插入到Uri指定的 地方; ∟update(Uri uri, ContentValues values, String where, String[] selectionArgs):更新Uri指定位置的数据; ∟delete(Uri uri, String where, String[] selectionArgs):删除指定Uri并 且符合一定条件的数据。
Android OS Training
— Android的数据存储操作
Prepared by: Eagle.guan
2013/11/3
Android的数据存储
∟Shared Preference存储 ∟文件存储 ∟SQLite存储 ∟Content Provider ∟网络存储 (Optional)