ContentProvider组件-ANdroid

来源:互联网 发布:免费遥感数据 编辑:程序博客网 时间:2024/05/21 03:58

CP自SDK17以后,默认是私有的,但对低版本的API是公开的。

 ContentProvider(以下简称CP)是Android的四大组件之一,提供类似数据库增删查改的数据操作方式,同时还支持跨进程。
 ContentProvider(内容提供者)用于提供数据的统一访问格式,封装底层的具体实现。对于数据的使用者来说,无需知晓数据的来源是数据库、文件,或者网络,只需简单地使用  ContentProvider提供的数据操作接口,也就是增(insert)、删(delete)、改(update)、查(query)四个过程。

  发布ContentProvider分两种情况:Provider进程尚未启动,Provider进程已启动但未发布。
  场景一(Provider进程尚未启动):system_server进程调用startProcessLocked()创建provider进程且attach到system_server后, 通过binder call到provider进程执行AT.bindApplication()方法;
  场景二(Provider进程已启动但未发布): 获取provider的过程[小节2.7.2], 发现provider进程已存在且attach到system_server,但所对应的provider还没有发布, 通过binder call到provider进程执行AT.scheduleInstallProvider方法。
  殊途同归,这两种途径最终都会合入installContentProviders过程。
 关于provider分为stable provider和unstable provider, 在于引用计数 的不同,一句话来说就是stable provider建立的是强连接, 客户端进程的与provider进程是存在依赖关系, 即provider进程死亡则会导致客户端进程被杀.

ContentProvider引发闪退之谜- https://mp.weixin.qq.com/s/hveaSdNkugC-k2X8jmmJCg
理解ContentProvider原理- http://gityuan.com/2016/07/30/content-provider/

Android:关于ContentProvider的知识都在这里了!- http://blog.csdn.Net/carson_ho/article/details/76101093
原创粉丝点击