翻译自android官网
Android架构组件 – App Startup
App Startup库提供了一种直接,高效的方法,可以在应用程序启动时初始化组件。库开发人员和应用程序开发人员都可以使用 app startup 来简化启动顺序并显式设置初始化顺序。
App Startup无需为需要初始化的每个组件定义单独的content provider,而是允许您定义共享单个content provider的组件初始化程序。这可以大大缩短应用程序的启动时间。
Setup 设定
要在您的库或应用程序中使用Jetpack Startup,请将以下内容添加到您的Gradle文件中:
dependencies {
implementation "androidx.startup:startup-runtime:1.0.0"
}
Initialize components at app startup 在应用启动时初始化组件
应用程序和库通常依赖于应用程序启动时立即初始化组件。您可以通过使用content provider初始化每个依赖关系来满足此需求,但是content provider的实例化成本很高,并且可能不必要地减慢启动顺序。此外,Android会以不确定的顺序初始化content provider。app startup提供了一种更高效的方法,可在应用程序启动时初始化组件并显式定义其依赖关系。
若要使用App Startup在启动时自动初始化组件,必须为应用程序需要初始化的每个组件定义一个component initializer。
Implement component initializers 实现组件初始化器
您可以通过创建实现该Initializer< T >接口的类来定义每个 component initializer 程序。该接口定义了两个重要的方法:
- create()方法
包含初始化组件的所有必要操作,并返回的实例T
。 - dependencies()方法
返回Initializer< T >初始化程序所依赖的其他对象的列表
。您可以使用此方法来控制应用程序在启动时运行初始化程序的顺序。
例如,假设您的应用依赖 WorkManager并且需要在启动时对其进行初始化。定义一个WorkManagerInitializer实现类Initializer< WorkManager >:
// Initializes WorkManager.
class WorkManagerInitializer implements Initializer<WorkManager> {
@Override
public WorkManager create(Context context) {
Configuration configuration = Configuration.Builder().build(