# DslLifecycle

# DslLifecycle

<br />

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

<br />

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

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

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

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------|
| [ApplicationAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/variant/ApplicationAndroidComponentsExtension)       | Extension for the Android Application Gradle Plugin components.     |
| [DynamicFeatureAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.4/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.4/com/android/build/api/variant/LibraryAndroidComponentsExtension)               | Extension for the Android Library Gradle Plugin components.         |
| [TestAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/7.4/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/7.4/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.                                                                 |
| [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [finalizeDsl](https://developer.android.com/reference/tools/gradle-api/7.4/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.4/com/android/build/api/variant/DslLifecycle#finalizeDsl(kotlin.Function1))above. |

## Public functions

### finalizeDsl

```
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

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