Android的插件化已经是老生常谈的话题了,插件化的好处有很多:解除代码耦合,插件支持热插拔,静默升级,从根本上解决65K属性和方法的bug等等。
下面给大家介绍一下我们正在用的差价化框架。
本片主要以类图的方式向大家介绍插件话框架的实现。
下图是框架的初始化流程:
框架初始化后,就该启动插件了,下图是插件的启动流程:
这个步骤主要是初始化插件的运行环境,利用宿主的Context改造成插件的Context。
接下来是插件启动Activity的流程:
该步骤主要是用宿主的Activity包装插件的Activity。
通过上面的几个流程图,我们得知插件框架的基本原理如下:
知道了启动插件Activity的原理后,我们思考下如何支持启动插件Service:
启动Service的实现方式和Activity有些不同,下面是框架管理Service的类图:
了解了框架支持Service的基本结构,我们看下启动插件非独立进程Service的流程:
启动独立进程插件Service要麻烦一些,请看流程图:
这个插件框架还有很多不足,我们还在继续完善。