温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android Framework ContentProvider框架

发布时间:2020-06-08 18:39:44 来源:网络 阅读:622 作者:小伟老师 栏目:移动开发

ContentProvider统一了对数据源操作的接口,并支持进程间通信(IPC),应用进程之间可以通过ContentProvider对外暴露接口,来分享数据。 作为android中核心组件,不得不深入了解,翻看了android的源码写篇blog与大家分享。


1.我画了一个静态类结构图,看下图:

Android Framework ContentProvider框架

上图中已经把ContentProvider的核心结构列举了出来。

1.IContentProvider定义了所有可以操作数据源的接口,如:query,insert等。

2.ContentProviderNative是一个抽象类继承自Binder,它并没有真正实现IContentProvider接口,ContentProviderNative核心方法asInterface,这是一个static的方法负责得到ContentProviderProxy代理对象。

3.ContentProviderProxy实现了IContentProvider所有接口,并支持进程间通信(IPC),主要负责将形参打包到Parcel中通过IBinder.transact发送包并从reply parcel中得到cursor

4.Transport继承自ContentProviderNative,并通过getIContentProvider方法返回。


我画了一个时序图,来说明在Activity中使用getConentResolver().query时以上对象的调用时序:


Android Framework ContentProvider框架

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI