Android-ContentProvider
一 ContentProvider定义及特性
1 ContentProvider:内容提供器,是一套存储访问数据的通道(实际上是一个通道),让你无需了解下面的储存细节的实现和数据操作及共享
2 无论具体储存是何种,存在哪里,对外提供的模型是统一的
3 定义的ContentProvider对象,会在系统初始化的时候自动实例化,无需手动,类似于service服务
4 只需通过ContentResolve去取和操作数据,ContentResolve和ContentProvider是相互配对的
5 特性:唯一的共享程序间数据方式,Android没有提供公共数据区然不同的程序去共享访问
二 ContentProvider实现机制
总结来说,是具体实现的下面三层结构
1 内部实现层:包含了一些数据,SharePreference,文件,网络,SQLite等的数据层
2 对外提供的ContentProvider层:是对数据层方法的进一步封装
3 APP与ContentProvider通讯层:使用ContentResolver来与ContentProvider层进行通讯
12两层通讯称为ContentProvider的自定义实现
23两层通讯称为ContentProvider的调用
实现的设计模式:观察者模式,监听与被监听
三 ContentProvider使用的原因
1 为了使应用程序下的具体的数据(具体的私有路径,限制了访问的权限)能够共享
2 Android系统由于安全的因素,提供的一些数据访问
3 让开发者能够访问不能直接开放给开发者的数据
4 可以使自定义的数据库程序(已经封装并且提供一套公共的标准)让外部调用而不是直接操作自定义的数据库
四 系统提供的ContentProvider
Browser浏览器
CallLog通话记录
ContactContract用户联系人
Calendar日历
MediaStore媒体库
Settings设置
UserDIctionary用户字典
五 URL网址
标准前缀 数据库的地址 数据库的表的名称 表的主键的名称
面试题
如何操作系统的Setting程序
1 SharePreference,
2 开启系统Setting的Activity
3 直接修改系统设置信息,不去调用设置的Activity就用ContentProvider
ContentProvider对象何时被实例化
会在系统初始化的时候自动实例化,无需手动
ContentProvider数据模型画出来
ContentProvider的实现机制
见上面
ContentProvider与Android数据存储的关系
实现机制的第一层的数据层就是数据存储层(DBS)
原文地址:http://blog.csdn.net/qq_22075977/article/details/46635587