Android开发数据相关

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




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

 一.SQLite数据库

  1. 是什么?

    SQLite一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla,PHP, Python)都使用了SQLite.

     

  2. 有啥用?

    SQLite基本上符合 SQL-92标准,和其他的主要 SQL数据库(如MYSQL,Oracle)没什么区别。它的优点就是高效,Android运行时环境包含了完整的 SQLite数据库存储在data/<项目文件夹 >/databases/ 下。

  1. 如何用?

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

    并重写:

    onCreate()

    onUpgrade()

     

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

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

 

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

     

     

  1. SQL语句方法

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

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

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

    database=helper.getWritableDatabase();

               database.execSQL(sql,params);

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

database=helper.getWritableDatabase();

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

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

 

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

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

     

  1. 参考资料:

  1. Android开发中使用SQLite数据库 - IBMAndroid开发中使用 SQLite数据库Android开发中使用 SQLite数据库http://www.ibm.com/developerworks/cn/opensource/os-cn-sqlite/

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

  3. 文档: 

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

     

     二. SharedPreferences

  1. 是什么?

    Android提供的用与存储轻量级数据的一个接口。

     

  2. 有啥用?

    Android开发过程中,有时候我们需要保存一些简单的软件配置等简单数据的信息,而如果我们直接用数据库存储的话又不太方便,在这里我们就可以用到SharedPreferencesSharedPreferences保存的数据主要是类似于配置信息格式的数据,因此保存的数据主要是简单类型的键值对(key-value),它保存的是一个XML文件。SharedPreferences文件存储在 data/< 项目文件夹 >/shared_prefs/下。

     

     

  3. 如何用?

  1. 通过Context提供的getSharedPreferences()方法获取SharedPreferences实例

  2. 通过SharedPreferencesedit()方法可以Editor对象用与写入数据

  3. 总的来说就是可以用SharedPrefrences负责根据key读取数据

    SharedPreferences.Editor用与写入数据。

     

  4. 具体的用法可以看一下,我们在app开发时设备参数设置这一块的血压设置:

  1. 参考资料

  1. 从头学AndroidAndroid的数据存储—SharedPreferenceshttp://blog.csdn.net/worker90/article/details/697166

       三.ContentProvider

  1. 是什么?

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

  2. 有啥用?

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

     

  3. 如何用?

  1. 首先看一个原理图

  2. Android开发数据相关_第1张图片

 
 

 

 

 

 


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

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

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

具体的注册例如这样:

<provider

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

android:exported="true"/>

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

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

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

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

 

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

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

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

 

 

 

  1. 参考资料:

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

     



你可能感兴趣的:(Android开发,ContentProvider,sqlite数据库)