在平常的开发工作中,时常会用到第三方SDK,一般都需要在Application中初始话,随着集成的SDK后,Application类就可能会变成这样:
class MainApplication : Application()
{
override fun onCreate()
{
super.onCreate()
ARouter.init(this)
UMConfigure.init(this,...)
Realm.init(this)
ToastUtils.init(this)
}
}
所有的SDK初始化都放在这里会拖慢App的启动速度,所以需要优化;当然我们可以开线程去初始化,可以在用得到的时候再初始化,这里我们介绍一种新的集成方式(参照FireBase实现):
1:把我们的SDK全部放进一个新的Module中并依赖(注意依赖的时候使用api方式,否则主模块将无法使用SDK):
2:新建InitSDKProvider实现ContentProvider并实现接口方法,并且在onCreate函数中进行所依赖SDK的初始化:
3:在Androidmanifgest.xml中添加provider节点:
最后,主模块依赖AARProviderTest模块,并在代码中调用方法进行使用。