# DslLifecycle

# DslLifecycle

[View Source](https://cs.android.com/search?q=file:com/android/build/api/variant/DslLifecycle.kt+class:com.android.build.api.variant.DslLifecycle)  
Added in 7.1.0  

<br />

```
interface DslLifecycle<T : Any?>
```

<br />

Known direct subclasses  
[AndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/AndroidComponentsExtension),[LintLifecycleExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/LintLifecycleExtension)  

|-----------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------|
| [AndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/AndroidComponentsExtension) | Generic extension for Android Gradle Plugin related components. |
| [LintLifecycleExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/LintLifecycleExtension)         |                                                                 |

Known indirect subclasses  
[ApplicationAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/ApplicationAndroidComponentsExtension),[DynamicFeatureAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/DynamicFeatureAndroidComponentsExtension),[KotlinMultiplatformAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/KotlinMultiplatformAndroidComponentsExtension),[LibraryAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/LibraryAndroidComponentsExtension),[TestAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/TestAndroidComponentsExtension)  

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|
| [ApplicationAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/ApplicationAndroidComponentsExtension)                 | Extension for the Android Application Gradle Plugin components.        |
| [DynamicFeatureAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/DynamicFeatureAndroidComponentsExtension)           | Extension for the Android Dynamic Feature Gradle Plugin components.    |
| [KotlinMultiplatformAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/KotlinMultiplatformAndroidComponentsExtension) | Components extension for KMP Android Gradle Plugin related components. |
| [LibraryAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/LibraryAndroidComponentsExtension)                         | Extension for the Android Library Gradle Plugin components.            |
| [TestAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/TestAndroidComponentsExtension)                               | Extension for the Android Test Gradle Plugin components.               |

*** ** * ** ***

## Summary

|                             ### Public functions                             |
|------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [finalizeDsl](https://developer.android.com/reference/tools/gradle-api/9.0/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/9.0/com/android/build/api/variant/DslLifecycle#finalizeDsl(kotlin.Function1))above. |
| [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [finalizeDsl](https://developer.android.com/reference/tools/gradle-api/9.0/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.                                                                 |

## Public functions

### finalizeDsl

Added in 7.1.0  

```
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/9.0/com/android/build/api/variant/DslLifecycle#finalizeDsl(kotlin.Function1))above.  

### finalizeDsl

Added in 7.1.0  

```
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")
}
```