栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Android】之 App Startup 的使用及浅析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Android】之 App Startup 的使用及浅析

前言

App Startup 是一个可以用于加速 App 启动速度的一个库。

平时开发中,大部分的第三方都需要在 Application 中进行初始化,但是有些库则会借助 ContentProvider 来初始化,以便使自己的库引入成本更低,代码侵入性更低,使用更加简便。

但是,一旦项目引入了使用 ContentProvider 进行初始化的库越来越多,那么应用的启动速度将会越来越慢,因为每个 ContentProvider 的初始化都是比较耗时的操作。

而 App Startup,它可以将所有用于初始化的 ContentProvider 合并成一个,从而使 App 的启动速度变得更快。实际上,App Startup 内部也创建了一个 ContentProvider,并提供了一套用于初始化的标准。

如果你在设计一款第三方库,建议使用 App Startup 来初始化你的库,而非 ContentProvider。

基本使用

下面来介绍 App Startup 的使用。

步骤一:引入依赖

implementation "androidx.startup:startup-runtime:1.1.1"

步骤二:创建 Initializer 类

class MainInitializer : Initializer {

    override fun create(context: Context) {
        // todo 执行库的初始化操作
    }

    
    override fun dependencies(): List>> = emptyList()

}

步骤三:在 AndroidManifest.xml 中声明


    

其中,meta-data 中的 android:name 节点需要指定成我们自定义的 Initializer 的全路径类名,其他部分都是不能修改的,否则App Startup库可能会无法正常工作。

手动初始化

我们可以在 meta-data 中加入 tools:node="remove" 使对应的 Initializer 失效,例如:


    

这样,WorkManagerInitializer 将不会执行 onCreate 方法,因此,如果我们想要执行 WorkManagerInitializer 的初始化,需要手动调用 WorkManager 的初始化方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/969984.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号