# DslLifecycle

# DslLifecycle

```
@Incubating interface DslLifecycle<T>
```

|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| [com.android.build.api.variant.DslLifecycle](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/DslLifecycle#) |

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known Direct Subclasses [AndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/AndroidComponentsExtension),[LintLifecycleExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/LintLifecycleExtension) |-----------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------| | [AndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/AndroidComponentsExtension) | Generic extension for Android Gradle Plugin related components. | | [LintLifecycleExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/LintLifecycleExtension)         | <br />                                                          | |

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known Indirect Subclasses [ApplicationAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ApplicationAndroidComponentsExtension),[DynamicFeatureAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/DynamicFeatureAndroidComponentsExtension),[LibraryAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/LibraryAndroidComponentsExtension),[TestAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/TestAndroidComponentsExtension) |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------| | [ApplicationAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ApplicationAndroidComponentsExtension)       | Extension for the Android Application Gradle Plugin components.     | | [DynamicFeatureAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/DynamicFeatureAndroidComponentsExtension) | Extension for the Android Dynamic Feature Gradle Plugin components. | | [LibraryAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/LibraryAndroidComponentsExtension)               | Extension for the Android Library Gradle Plugin components.         | | [TestAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/TestAndroidComponentsExtension)                     | Extension for the Android Test Gradle Plugin components.            | |

## Summary

|                                                                                                                                                                                                                                                                                           ### Public methods                                                                                                                                                                                                                                                                                            ||
|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [finalizeDsl](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/DslLifecycle#finalizeDsl(kotlin.Function1))`(`callback:` `(T)` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` API to customize the DSL Objects programmatically after they have been evaluated from the build files and before used in the build process next steps like variant or tasks creation.                                                               |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [finalizeDsl](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/DslLifecycle#finalizeDsl(org.gradle.api.Action))`(`callback:` `[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)<T>`)` [Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)based version of[finalizeDsl](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/DslLifecycle#finalizeDsl(kotlin.Function1))above. |

## Public methods

### finalizeDsl

```
abstract fun finalizeDsl(callback: (T) -> Unit): Unit
```

API to customize the DSL Objects programmatically after they have been evaluated from the build files and before used in the build process next steps like variant or tasks creation.

Example of a build type creation:  

```text
androidComponents.finalizeDsl { extension ->
    extension.buildTypes.create("extra")
}
```  

### finalizeDsl

```
abstract fun finalizeDsl(callback: Action<T>): Unit
```

[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)based version of[finalizeDsl](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/DslLifecycle#finalizeDsl(kotlin.Function1))above.