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

目前在研读田维术的系列文章《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,并调用其对应的方法?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值