[笔记]ContentProvider的插件化的理解

来源:互联网 发布:数据挖掘软件有哪些 编辑:程序博客网 时间:2024/05/17 02:19

目前在研读田维术的系列文章《Android插件化原理解析》,http://weishu.me/2016/01/28/understand-plugin-framework-overview/

本文写一下Android插件化原理解析——ContentProvider的插件化的读后感和理解.

1.ContentProvider的工作流程图:


2.ContentProvider的插件化实现方法:

3.疑问

3.1 install一个ContentProvider的含义是啥?

答:在ActivityThread类中,不管是调用方还是ContentProvider所在的APP,都会调用方法installProvider来进行install。区别是:对于ContentProvider所在的APP,它会将本APP中所有的ContentProvider类通过ClassLoader的方式加载到内存中,然后调用其attachInfo方法进行初始化操作。相同的地方是:都会将该ContentProvider实例保存在mProviderMap中,以便后续的再次使用。图1中的“install"仅仅指保存在mProviderMap的操作。

3.2 接着3.1问,在插件化框架中,StubContentProvider的代理分发具体是怎么实现的?

答:宿主APP在系统installStubContentProvider之前,在Application类的attachBaeContext()方法里抢先install了各个插件的ContentProvider。怎么个安装法?

是模拟系统进行正常的install?在ActivityThread类的mProviderMap中,以插件的Authority为key来保存,然后返给AMS的也是插件的ContentProvider吗?然后在StubContentProvider的各个方法里再根据代理分发,根据插件的Authority去get到插件的ContentProvider,并调用其对应的方法?


0 0
原创粉丝点击