# Initializer

Artifact: [androidx.startup:startup-runtime](https://developer.android.com/jetpack/androidx/releases/startup) [View Source](https://cs.android.com/search?q=file:androidx/startup/Initializer.java+class:androidx.startup.Initializer) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/startup#1.0.0)

*** ** * ** ***


```
interface Initializer<T>
```

<br />

Known direct subclasses [ComposeTracingInitializer](https://developer.android.com/reference/kotlin/androidx/compose/runtime/tracing/ComposeTracingInitializer), [EmojiCompatInitializer](https://developer.android.com/reference/kotlin/androidx/emoji2/text/EmojiCompatInitializer), [ProcessLifecycleInitializer](https://developer.android.com/reference/kotlin/androidx/lifecycle/ProcessLifecycleInitializer), [ProfileInstallerInitializer](https://developer.android.com/reference/kotlin/androidx/profileinstaller/ProfileInstallerInitializer), [StartupTracingInitializer](https://developer.android.com/reference/kotlin/androidx/tracing/perfetto/StartupTracingInitializer), [WorkManagerInitializer](https://developer.android.com/reference/kotlin/androidx/work/WorkManagerInitializer)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/tracing/ComposeTracingInitializer` | Configures AndroidX Tracing in the app allowing for capturing Compose specific information (e.g. Composable function names) in a AndroidX trace |
| `https://developer.android.com/reference/kotlin/androidx/emoji2/text/EmojiCompatInitializer` | Initializer for configuring EmojiCompat with the system installed downloadable font provider. |
| `https://developer.android.com/reference/kotlin/androidx/lifecycle/ProcessLifecycleInitializer` | Initializes `https://developer.android.com/reference/kotlin/androidx/lifecycle/ProcessLifecycleOwner` using `androidx.startup`. |
| `https://developer.android.com/reference/kotlin/androidx/profileinstaller/ProfileInstallerInitializer` | Startup library initializer that installs an AOT profile several seconds after launch. |
| `https://developer.android.com/reference/kotlin/androidx/tracing/perfetto/StartupTracingInitializer` | Enables tracing at app startup if configured prior to app starting |
| `https://developer.android.com/reference/kotlin/androidx/work/WorkManagerInitializer` | Initializes `https://developer.android.com/reference/kotlin/androidx/work/WorkManager` using `androidx.startup`. |

*** ** * ** ***

Initializes library components during app startup. Discovered and initialized by `https://developer.android.com/reference/kotlin/androidx/startup/InitializationProvider`.

| Parameters |
|---|---|
| `<T>` | The type of the component being initialized. |

## Summary

| ### Public functions |
|---|---|
| `T` | `https://developer.android.com/reference/kotlin/androidx/startup/Initializer#create(android.content.Context)(context: https://developer.android.com/reference/android/content/Context.html)` Initializes a library component within the application `https://developer.android.com/reference/android/content/Context.html`. |
| `(https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/java/lang/Class.html<https://developer.android.com/reference/kotlin/androidx/startup/Initializer<*>!>!>` | `https://developer.android.com/reference/kotlin/androidx/startup/Initializer#dependencies()()` Gets a list of this initializer's dependencies. |

## Public functions

### create

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/startup#1.0.0)

```
fun create(context: Context): T
```

Initializes a library component within the application `https://developer.android.com/reference/android/content/Context.html`.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html` | The application context. |

### dependencies

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/startup#1.0.0)

```
fun dependencies(): (Mutable)List<Class<Initializer<*>!>!>
```

Gets a list of this initializer's dependencies. Dependencies are initialized before the dependent initializer. For example, if initializer A defines initializer B as a dependency, B is initialized before A.

| Returns |
|---|---|
| `(https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/java/lang/Class.html<https://developer.android.com/reference/kotlin/androidx/startup/Initializer<*>!>!>` | A list of initializer dependencies. |