一种提高App启动速度的第三方SDK初始化方式

在平常的开发工作中,时常会用到第三方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):

一种提高App启动速度的第三方SDK初始化方式_第1张图片

2:新建InitSDKProvider实现ContentProvider并实现接口方法,并且在onCreate函数中进行所依赖SDK的初始化:

一种提高App启动速度的第三方SDK初始化方式_第2张图片

3:在Androidmanifgest.xml中添加provider节点:

一种提高App启动速度的第三方SDK初始化方式_第3张图片

最后,主模块依赖AARProviderTest模块,并在代码中调用方法进行使用。

工程代码链接:https://github.com/chen8888/AARProviderTest

你可能感兴趣的:(android)