# DslLifecycle

# DslLifecycle


```
@Incubating
public interface DslLifecycle<T extends Object>
```

<br />

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

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

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

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

*** ** * ** ***

## Summary

| ### Public methods |
|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract void`    | [finalizeDsl](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DslLifecycle#finalizeDsl(org.gradle.api.Action))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` T> callback)` [Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html) based version of [finalizeDsl](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DslLifecycle#finalizeDsl(kotlin.Function1)) above. |
| `abstract void`    | [finalizeDsl](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DslLifecycle#finalizeDsl(kotlin.Function1))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` Function1<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` T, `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`> callback)` 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 methods

### finalizeDsl

```
abstract void finalizeDsl(@NonNull Action<@NonNull T> callback)
```

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

### finalizeDsl

```
abstract void finalizeDsl(@NonNull Function1<@NonNull T, Unit> callback)
```

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