plugin调用ContentProvider是通过plugin-lib的PluginProviderClient类进行的,以PluginProviderClient.query为例,看一下Replugin ContentProvider的实现机制。
先总结一下调用栈
PluginProviderClient.query -- plugin-lib
PluginProviderClient.query -- host-lib(通过反射调用到)
PluginProviderClient.toCalledUri -- 关键代码
PluginPitProviderBase.query
PluginProviderHelper.getProvider().query -- 真正的provider的query
关键代码就在com.qihoo360.replugin.component.provider.PluginProviderClient中,它的几个方法如下