(android)解剖contentProvider-001

本文将介绍如何去研究android的四大组件之一contentProvider,由于我暂时会用到contacts和calendars,就介绍这2个内容先.

转载请表明来自于http://my.oschina.net/moziqi/blog

首先我介绍我用的工具先,不如会让读者迷惑.

我用的是eclipse+genymotion+sqlite Expert Persional,另外我基于android4.0(14版本来弄的,旧版本我不会介绍,你们可以参考我这个来学低版本),我启动的模拟器是4.4.4,但我教会用4.0的文档来说,差异应该不会好大

首先当然要启动相应的软件吧,如果没有相应的软件,可以自己去下载,尤其genymotion这个软件,需要注册才可以使用,

配置上面的东西后,在eclipse启动genymotion,打开eclipse视图File Explorer就会显示如下图所示:

展开显示打开到data->data->com.android.provider.contacts,暂时介绍这个先

把contacts.db导出到外面,点中contacts.db按下图按钮,就可以导出,看下图如何导出

把contacts.db导入到sqlite Export Persional中就会显示出来好多张表,如下图所示

由于这个些表是android自带的,我们看完到这里之后,就有必要了解下什么叫contentProvider,另外我们也有必要去了解这里面的表字段有那些,是为了开发做铺垫.另外不仅仅是表,还有几个视图

在说表的字段前面,我们来介绍下Contacts Provider(联系人提供者)

(引用官网的文章)

能翻墙,看英文的童靴就最好自己去看下,不太懂英文,就看写国内的文章,加深对这些概念的理解吧.

The Contacts Provider is a powerful and flexible Android component that manages the device‘s central repository of data about people.

这Contacts Provider 是一个很强大和灵活的Android组件.操控联系人

Contacts Provider Organization(结构图)

主要是有3张表

The three tables are commonly referred to by the names of their contract classes. The classes define constants for content URIs, column names, and column values used by the tables:

ContactsContract.Contacts table

Rows representing different people, based on aggregations of raw contact rows.

ContactsContract.RawContacts table

Rows containing a summary of a person‘s data, specific to a user account and type.

ContactsContract.Data table

Rows containing the details for raw contact, such as email addresses or phone numbers.

The other tables represented by contract classes in ContactsContract are auxiliary tables that the Contacts Provider uses to manage its operations or support specific functions in the device‘s contacts or telephony applications.

raw可以翻译成源(表示来谷歌/百度),就是来自那里的联系人意思吧.



2015-1-2

打开源码路径,自己去下载,别问我怎么下载

D:\adt-bundle-windows-x86-20140321\sdk\sources\android-19\android\provider

看下自己想看的源码类

算了,不想磨磨擦,你们自己剩下自己去自学去吧.

看懂这边文章http://blog.csdn.net/qingye_love/article/details/9028503

时间: 2024-10-14 13:02:57

(android)解剖contentProvider-001的相关文章

(android)解剖contentProvider获取通讯录列表-002

//基于上一次说的内容 ,我们来弄下获取联系人详细信息,直接上代码,在第三篇补上其他的操作 package org.mo.pmas.resolver; //本文章归属于小黑_mo所有,转载请说明出来http://my.oschina.net/moziqi/ import android.content.ContentResolver; import android.content.ContentUris; import android.content.Context; import androi

Android之ContentProvider

ContentProvider是Android的四大组件之一. 先说说我对这个东西的理解吧,ContentProvider就是用来存数据,用来共享数据的,比如:手机通讯录的联系人的信息以及手机上面存的相片,视频等等. 比较官方的解释: Android中的Content provider机制可支持在多个应用中存储和读取数据.这也是跨应用共享数据的方式之一,还有文件,sharePreference,SQLite数据库等方式存储共享数据库,但是ContentProvider更好的提供了数据共享接口的统

(Android review)ContentProvider的基本使用

1.某些数据库在外面是不能使用的.2.ContentProvider让A程序中的数据能让B程序使用3.ContentProvider主要是共享数据.可以添加ContentObserver来观察数据的变化4.<provider />中的authorities主要用于区分不同的provider5.content://cn.itcast.aqlite.provider((/person)/id)解析:content://    ----->固定写法,必须有cn.itcast.aqlite.pr

Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果

首先我们先看第一个界面吧,使用将手机中的图片扫描出来,然后根据图片的所在的文件夹将其分类出来,并显示所在文件夹里面的一张图片和文件夹中图片个数,我们根据界面元素(文件夹名, 文件夹图片个数,文件夹中的一张图片)使用一个实体对象ImageBean来封装这三个属性 package com.example.imagescan; /** * GridView的每个item的数据对象 * * @author len * */ public class ImageBean{ /** * 文件夹的第一张图片路

Android 下ContentProvider的学习

使用contentProvider 1.要先继承contentProvider 2.要在配置文件中声明contentProvider <permission android:name="aa.bb.cc.read" ></permission> <permission android:name="aa.bb.cc.write" ></permission> <provider android:name="

Android 之contentProvider

contentProvider:ContentProvider在Android中的作用是对外提供数据,除了可以为所在应用提供数据外,还可以共享数据给其他应用,这是Android中解决应用之间数据共享的机制. 通过ContentProvider我们可以对数据进行增删改查的操作.使用ContentProvider对外共享数据的好处是统一了数据的访问方式. ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用

Android之ContentProvider数据存储

一.ContentProvider保存数据介绍 一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据完全暴露出去,而且ContentProvider是以类似数据库中表的方式将数据暴露的.那么外界获取其提供的数据,也就应该与从数据库中获取数据的操作基本一样,只不过是采用URL来表示外界需要访问的"数据库". ContentProvider提供了一种多应用间数据共享的方式. ContentProvider是个实现了一组用于提供其他应用程序存取数据的标准方法的类.应用

Android中ContentProvider的简单使用

1.新建继承ContentProvider的类 package com.wangzhu.demo; import android.content.ContentProvider; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import andr

android之ContentProvider和Uri具体解释

一.使用ContentProvider(内容提供者)共享数据 在android中ContentProvider的作用是对外共享数据,就是说能够通过ContentProvider把应用中的数据共享给其它应用訪问,其它应用能够通过ContentProvider对你应用中的数据进行添删改查. 就像我们手机的通话记录.我没要查看某个通话时间.这是须要调用通话记录中的数据.此时就该用到了ContentProvider数据共享. 关于数据共享.在文件操作模式,通过指定文件的操作模式为Context.MODE

解读Android之ContentProvider(2)创建自己的Provider

本文翻译自android官方文档,结合自己测试,整理如下. content provider管理数据的访问,我们可以在自己的应用程序中实现一个或多个自定义的provider(通过继承抽象类ContentProvider),当然这些provider需要在manifest文件中注册.尽管content provider是用来为其它程序来访问数据的,但是在自己程序中的activities显然可以对这些数据进行处理. 创建provider之前注意事项 确定是否需要提供content provider.若