移动开发 \ Android \ Android开发数据相关

Android开发数据相关

总点击178
简介:本讲义所对应的PPT与工程代码下载链接:http://download.csdn.net/detail/ly969434341/8899173

本讲义所对应的PPT与工程代码下载链接:http://download.csdn.net/detail/ly969434341/8899173




我们在认知与学习一件事物时通常会有这样的三个疑问:是什么?有啥用?如何用?我接下来对Android的数据相关的三个组件的讲解基本上围绕着三个疑问去展开。

 一.SQLite数据库

是什么?

SQLite一个非常流行的嵌入式数据库,它支持

SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla,PHP,Python)都使用了SQLite.

 

有啥用?

SQLite基本上符合

SQL-92标准,和其他的主要 SQL数据库(如MYSQL,Oracle)没什么区别。它的优点就是高效,Android运行时环境包含了完整的

SQLite。数据库存储在data/<项目文件夹

>/databases/ 下。

如何用?

继承SQLiteOpenHelper类实现一个他的子类

并重写:

onCreate()

onUpgrade()

 

用SQLiteOpenHelper对象的调用 getWritableDatabase()或者 getReadableDatabase()其中一个方法将数据库建立获得SQLiteDatabase类对象

调用SQLiteDatabase对象的方法进行数据库的操作:

 

SQLiteDatabase类的操作上可进行SQL语句方法和Android推荐方法两类的区分

 

 

SQL语句方法

//这里面?表示占位符,所以需要传入所有占位符的值,传入值有这个方法的参数传递

Stringsql="insert into person(name,address,sex)values(?,?,?)";

//获取一个可以写入的数据库

database=helper.getWritableDatabase();

           database.execSQL(sql,params);

推荐api方法(也是对SQL语句的一个封装)

database=helper.getWritableDatabase();

id=database.insert("person",null,values);

flag=(id!=-1?true:false);

 

具体的对数据库的增删改查,我们看一个小应用例子的演示:SQLiteDemo

总结一下,关键就是要明白SQLiteOpenHelper类和SQLiteDatabase类,我讲的也不够全面和详细,更多的用法及注意事项可以去查看文档:

 

参考资料:

Android开发中使用SQLite数据库

- IBMAndroid开发中使用 SQLite数据库Android开发中使用

SQLite数据库:http://www.ibm.com/developerworks/cn/opensource/os-cn-sqlite/

【Android开发】:数据存储之 SQLite数据库操作(一):http://blog.csdn.net/ahuier/article/details/10417777

文档: 

http://developer.android.com/develop/index.html?q=SQLiteOpenHelper

 

 二. SharedPreferences

是什么?Android提供的用与存储轻量级数据的一个接口。 有啥用?在Android开发过程中,有时候我们需要保存一些简单的软件配置等简单数据的信息,而如果我们直接用数据库存储的话又不太方便,在这里我们就可以用到SharedPreferences,SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此保存的数据主要是简单类型的键值对(key-value),它保存的是一个XML文件。SharedPreferences文件存储在data/< 项目文件夹 >/shared_prefs/下。  如何用?通过Context提供的getSharedPreferences()方法获取SharedPreferences实例通过SharedPreferences的edit()方法可以Editor对象用与写入数据总的来说就是可以用SharedPrefrences负责根据key读取数据SharedPreferences.Editor用与写入数据。 具体的用法可以看一下,我们在app开发时设备参数设置这一块的血压设置:参考资料从头学Android之Android的数据存储—SharedPreferences:http://blog.csdn.net/worker90/article/details/697166

       三.ContentProvider

是什么?

ContentProvider是不同应程序之间进行数据交换的标准API,是Android开发的四大组件之一,与Activity,Service,BroadcastReceiver相似都需要在AndroidMainfest.xml文件中进行配置。

有啥用?

当系统中多个Android应用需要共享与交换数据时就需要提供一套标准。其中数据的提供应用可以通过提供ContentProvider来实现;数据的获取应用可以通过ContentResolver来操作ContentProvider暴露的数据。

 

如何用?

首先看一个原理图

Android开发数据相关

 

 

 

 

 

 


图画的很丑,意图就是想用来说明,

第一步:B应用(提供数据)继承实现ContentProvider类,并实现相应的:onCreate();insert();delete();update();query();等方法用于对数据操作。

第二步:将实现了的ContentProvider在B应用的AndroidManifest.xml中进行注册,以便于其他应用访问。

具体的注册例如这样:

<provider

            android:name="com.peak.firstprovider.FirstProvider" android:authorities="com.peak.firstprovider"

android:exported="true"/>

第三步:A应用(获取数据)可以通过Context的getContentResolver()方法来获得系统提供的ContentResolver实例。

第四步:A应用中定义访问B应用中ContentProvider的Uri,例如:

Uriuri=Uri.parse("content://com.peak.firstprovider/");

第五步:最后在A应用中可以用ContentResolver的Uri参数的增删改查方法实现对B应用中对于ContentProvider的增删改查方法的调用。

 

2.然后我们看一个用于演示的最简单的例子:

FirstProvider(应用A,数据提供方),FirstResolver(应用B,数据获取方)

3.最后需要说明的就是,.ContentPriovider的讲述是按照最简单的模式来讲的,更多的实际的开发和应用请参考文档,及其他资料。

 

 

 

参考资料:

Android应用程序组件ContentProvider应用实例:http://blog.csdn.net/luoshengyang/article/details/6950440

 



意见反馈 常见问题 官方微信 返回顶部