# Component

# Component

```
@Incubating interface Component<PropertiesT : ComponentProperties> : ComponentIdentity, ActionableComponentObject
```

|------------------------------------------------------------------------------------------------------------------------------------------------------|
| [com.android.build.api.component.Component](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/Component#) |

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known Direct Subclasses [TestComponent](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/TestComponent),[Variant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant.html#) |-----------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------| | [TestComponent](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/TestComponent) | <br />                                                                                                                           | | [Variant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant.html#)         | Variant object that contains properties that must be set during configuration time as it changes the build flow for the variant. | |

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known Indirect Subclasses [AndroidTest](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/AndroidTest),[ApplicationVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/ApplicationVariant.html#),[DynamicFeatureVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/DynamicFeatureVariant.html#),[LibraryVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/LibraryVariant.html#),[TestVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/TestVariant.html#),[UnitTest](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/UnitTest) |-------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------| | [AndroidTest](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/AndroidTest)                         | Variant of the android test artifact                                                                                                                        | | [ApplicationVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/ApplicationVariant.html#)       | Application specific variant object that contains properties that will determine the variant's build flow.                                                  | | [DynamicFeatureVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/DynamicFeatureVariant.html#) | <br />                                                                                                                                                      | | [LibraryVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/LibraryVariant.html#)               | [Variant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant.html#)type for library projects                | | [TestVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/TestVariant.html#)                     | [Variant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant.html#)type for tests associated with a module. | | [UnitTest](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/UnitTest)                               | Variant of the unit test artifact                                                                                                                           | |

Component object that contains properties that must be set during configuration time as it changes the build flow for the variant.

## Summary

|                                                                                                                                                                                                                                                                                                    ### Public methods                                                                                                                                                                                                                                                                                                     ||
|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onProperties](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/Component#onProperties(kotlin.Function1))`(`action:` `PropertiesT.()` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` Runs the[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)block on the[VariantProperties](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/VariantProperties.html#)object once created. |

|                                                                                                                                                    ### Properties                                                                                                                                                    ||
|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | [enabled](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/Component#enabled:kotlin.Boolean) Set to True if the variant is active and should be configured, false otherwise. |

| ### Inherited properties ||
|---|---|
| From class[ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/ComponentIdentity) |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)?                                                                                                                                                                                                                                                            | [buildType](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/ComponentIdentity#buildType:kotlin.String) <br /> Build Type name, might be replaced with access to locked DSL object once ready <br />                                                                                                                                                                                      | | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)                                                                                                                                                                                                                                                             | [flavorName](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/ComponentIdentity#flavorName:kotlin.String) <br /> The multi-flavor name of the variant. This does not include the build type. If no flavors are present, this is an empty string. The full name of the variant is queried via[getName](https://docs.gradle.org/current/javadoc/org/gradle/api/Named.html#getName()) <br /> | | [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[Pair](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html),` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>> | [productFlavors](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/ComponentIdentity#productFlavors:kotlin.collections.List) <br /> List of flavor names, might be replaced with access to locked DSL objects once ready The order is properly sorted based on the associated dimension order <br />                                                                                       | ||

## Public methods

### onProperties

```
abstract fun onProperties(action: PropertiesT.() -> Unit): Unit
```

Runs the[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)block on the[VariantProperties](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/VariantProperties.html#)object once created.

## Properties

### enabled

```
abstract var enabled: Boolean
```

Set to True if the variant is active and should be configured, false otherwise.