# DynamicFeatureAndroidComponentsExtension

# DynamicFeatureAndroidComponentsExtension

```
@Incubating interface DynamicFeatureAndroidComponentsExtension : AndroidComponentsExtension<DynamicFeatureVariantBuilder, DynamicFeatureVariant>
```

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [com.android.build.api.extension.DynamicFeatureAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/DynamicFeatureAndroidComponentsExtension#) |

Extension for Dynamic Feature module variant.

A dynamic feature module is created when a build script is applying the 'com.android.dynamic-feature' plugin.

## Summary

| ### Inherited functions ||
|---|---|
| From class[AndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension) |---------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [androidTests](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#androidTests(com.android.build.api.extension.VariantSelector,%20org.gradle.api.Action))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)<[AndroidTest](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/AndroidTest.html#)>`)` <br /> Allow for registration of a[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$androidTests(com.android.build.api.extension.VariantSelector,%20org.gradle.api.Action((com.android.build.api.component.AndroidTest)))/callback)to be called with instances of type[AndroidTest](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/AndroidTest.html#)once the list of[com.android.build.api.artifact.Artifact](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/artifact/Artifact.html#)has been determined. At this stage, access to the DSL objects is disallowed and access to the[AndroidTestBuilder](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/AndroidTestBuilder.html#)instance is limited to read-only access. Because the list of artifacts (including private ones) is final, one cannot change the build flow anymore as[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)s are now expecting those artifacts as inputs. However users can modify such artifacts by replacing or transforming them, see[com.android.build.api.artifact.Artifacts](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/artifact/Artifacts.html#)for details. Code executing in the[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$androidTests(com.android.build.api.extension.VariantSelector,%20org.gradle.api.Action((com.android.build.api.component.AndroidTest)))/callback)also has access to the[AndroidTest](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/AndroidTest.html#)information which is used to configure[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)inputs. Such information represented as[org.gradle.api.provider.Property](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html)can still be modified ensuring that all[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)s created by the Android Gradle Plugin use the updated value. <br />        | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [androidTests](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#androidTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `([AndroidTest](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/AndroidTest.html#))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br /> [Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)based version of the[AndroidTest](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/AndroidTest.html#)above. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [beforeAndroidTests](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#beforeAndroidTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `([AndroidTestBuilder](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/AndroidTestBuilder.html#))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br /> Allow for registration of a[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeAndroidTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.component.AndroidTestBuilder,%20kotlin.Unit)))/callback)to be called with[AndroidTestBuilder](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/AndroidTestBuilder.html#)that satisfies the[selector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeAndroidTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.component.AndroidTestBuilder,%20kotlin.Unit)))/selector). The[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeAndroidTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.component.AndroidTestBuilder,%20kotlin.Unit)))/callback)will be called as soon as the[AndroidTestBuilder](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/AndroidTestBuilder.html#)instance has been created but before any[com.android.build.api.artifact.Artifact](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/artifact/Artifact.html#)related to android tests has been determined, therefore the build flow can still be changed when the[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeAndroidTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.component.AndroidTestBuilder,%20kotlin.Unit)))/callback)is invoked. <br />                                                                                                                                                                                                                                                                                                | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [beforeAndroidTests](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#beforeAndroidTests(com.android.build.api.extension.VariantSelector,%20org.gradle.api.Action))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)<[AndroidTestBuilder](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/AndroidTestBuilder.html#)>`)` <br /> [Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)based version of the[beforeAndroidTests](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#beforeAndroidTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))above. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [beforeUnitTests](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#beforeUnitTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `([UnitTestBuilder](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/UnitTestBuilder.html#))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br /> Allow for registration of a[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeUnitTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.component.UnitTestBuilder,%20kotlin.Unit)))/callback)to be called with[UnitTestBuilder](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/UnitTestBuilder.html#)that satisfies the[selector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeUnitTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.component.UnitTestBuilder,%20kotlin.Unit)))/selector). The[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeUnitTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.component.UnitTestBuilder,%20kotlin.Unit)))/callback)will be called as soon as the[UnitTestBuilder](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/UnitTestBuilder.html#)instance has been created but before any[com.android.build.api.artifact.Artifact](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/artifact/Artifact.html#)related to unit tests has been determined, therefore the build flow can still be changed when the[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeUnitTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.component.UnitTestBuilder,%20kotlin.Unit)))/callback)is invoked. <br />                                                                                                                                                                                                                                                                                                                                                   | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [beforeUnitTests](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#beforeUnitTests(com.android.build.api.extension.VariantSelector,%20org.gradle.api.Action))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)<[UnitTestBuilder](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/UnitTestBuilder.html#)>`)` <br /> [Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)based version of[beforeUnitTests](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#beforeUnitTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))above. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [beforeVariants](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#beforeVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `(VariantBuilderT)` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br /> Method to register a[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.extension.AndroidComponentsExtension.VariantBuilderT,%20kotlin.Unit)))/callback)to be called with VariantBuilderT instances that satisfies the[selector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.extension.AndroidComponentsExtension.VariantBuilderT,%20kotlin.Unit)))/selector). The[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.extension.AndroidComponentsExtension.VariantBuilderT,%20kotlin.Unit)))/callback)will be called as soon as the VariantBuilderT instance has been created but before any[com.android.build.api.artifact.Artifact](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/artifact/Artifact.html#)has been determined, therefore the build flow can still be changed when the[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$beforeVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.extension.AndroidComponentsExtension.VariantBuilderT,%20kotlin.Unit)))/callback)is invoked. At this stage, access to the DSL objects is disallowed, use[afterDsl](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/DynamicFeatureAndroidComponentsExtension#)method to programmatically access the DSL objects before the VariantBuilderT object is built. Example without selection: ```gdscript androidComponents { beforeVariants { println("Called with variant : ${'$'}name") } } ``` Example with selection: ```gdscript androidComponents { val debug = selector().withBuildType("debug") beforeVariants(debug) { println("Called with variant : ${'$'}name") } } ``` <br /> | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [beforeVariants](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#beforeVariants(com.android.build.api.extension.VariantSelector,%20org.gradle.api.Action))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)<VariantBuilderT>`)` <br /> [Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)based version of[beforeVariants](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#beforeVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))above. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [onVariants](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#onVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `(VariantT)` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br /> Allow for registration of a[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$onVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.extension.AndroidComponentsExtension.VariantT,%20kotlin.Unit)))/callback)to be called with variant instances of type VariantT once the list of[com.android.build.api.artifact.Artifact](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/artifact/Artifact.html#)has been determined. At this stage, access to the DSL objects is disallowed and access to the VariantBuilderT instance is limited to read-only access. Because the list of artifacts (including private ones) is final, one cannot change the build flow anymore as[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)s are now expecting those artifacts as inputs. However users can modify such artifacts by replacing or transforming them, see[com.android.build.api.artifact.Artifacts](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/artifact/Artifacts.html#)for details. Code executing in the[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$onVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1((com.android.build.api.extension.AndroidComponentsExtension.VariantT,%20kotlin.Unit)))/callback)also has access to the VariantT information which is used to configure[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)inputs (for example, the buildConfigFields). Such information represented as[org.gradle.api.provider.Property](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html)can still be modified ensuring that all[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)s created by the Android Gradle Plugin use the updated value. <br />                                                                                                                                                                                                                                                                                                                                                                                 | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [onVariants](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#onVariants(com.android.build.api.extension.VariantSelector,%20org.gradle.api.Action))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)<VariantT>`)` <br /> [Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)based version of[onVariants](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#onVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))above. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | | [VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector) | [selector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#selector())`()` <br /> Creates a[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)instance that can be configured to reduce the set of[ComponentBuilder](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/ComponentBuilder.html#)instances participating in the[beforeVariants](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#beforeVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))and[onVariants](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#onVariants(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))callback invocation. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [unitTests](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#unitTests(com.android.build.api.extension.VariantSelector,%20org.gradle.api.Action))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)<[UnitTest](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/UnitTest.html#)>`)` <br /> Allow for registration of a[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$unitTests(com.android.build.api.extension.VariantSelector,%20org.gradle.api.Action((com.android.build.api.component.UnitTest)))/callback)to be called with instances of type[UnitTest](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/UnitTest.html#)once the list of[com.android.build.api.artifact.Artifact](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/artifact/Artifact.html#)has been determined. At this stage, access to the DSL objects is disallowed and access to the[UnitTestBuilder](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/UnitTestBuilder.html#)instance is limited to read-only access. Because the list of artifacts (including private ones) is final, one cannot change the build flow anymore as[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)s are now expecting those artifacts as inputs. However users can modify such artifacts by replacing or transforming them, see[com.android.build.api.artifact.Artifacts](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/artifact/Artifacts.html#)for details. Code executing in the[callback](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#com.android.build.api.extension.AndroidComponentsExtension$unitTests(com.android.build.api.extension.VariantSelector,%20org.gradle.api.Action((com.android.build.api.component.UnitTest)))/callback)also has access to the[UnitTest](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/UnitTest.html#)information which is used to configure[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)inputs. Such information represented as[org.gradle.api.provider.Property](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html)can still be modified ensuring that all[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)s created by the Android Gradle Plugin use the updated value. <br />                                                  | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                    | [unitTests](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#unitTests(com.android.build.api.extension.VariantSelector,%20kotlin.Function1))`(`selector:` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/VariantSelector)` `=` selector().all(), `callback:` `([UnitTest](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/component/UnitTest.html#))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br /> [Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)based version of the[unitTests](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#unitTests(com.android.build.api.extension.VariantSelector,%20org.gradle.api.Action))above. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | ||

| ### Inherited properties ||
|---|---|
| From class[AndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension) |-----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [SdkComponents](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/dsl/SdkComponents.html#) | [sdkComponents](https://developer.android.com/reference/tools/gradle-api/4.2/com/android/build/api/extension/AndroidComponentsExtension#sdkComponents:com.android.build.api.dsl.SdkComponents) <br /> Provides access to underlying Android SDK and build-tools components like adb. <br /> | ||