# Component

# Component

<br />

```
public interface Component extends ComponentIdentity
```

<br />

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

|--------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|
| [TestComponent](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/TestComponent) |                                             |
| [TestFixtures](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/TestFixtures)   |                                             |
| [Variant](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Variant)             | Parent interface for all types of variants. |

Known indirect subclasses  
[AndroidTest](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/AndroidTest),[ApplicationVariant](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ApplicationVariant),[DynamicFeatureVariant](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DynamicFeatureVariant),[LibraryVariant](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/LibraryVariant),[TestVariant](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/TestVariant),[UnitTest](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/component/UnitTest),[UnitTest](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/UnitTest)  

|------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
| [AndroidTest](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/AndroidTest)                     | Properties for the android test Variant of a module.                                                                                     |
| [ApplicationVariant](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ApplicationVariant)       | Properties for the main Variant of an application.                                                                                       |
| [DynamicFeatureVariant](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DynamicFeatureVariant) |                                                                                                                                          |
| [LibraryVariant](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/LibraryVariant)               | [Variant](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Variant)for Library projects   |
| [TestVariant](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/TestVariant)                     | [Variant](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Variant)for test-only modules. |
| [UnitTest](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/component/UnitTest)                         | **This interface is deprecated.**Use the com.android.build.api.variant package                                                           |
| [UnitTest](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/UnitTest)                           |                                                                                                                                          |

*** ** * ** ***

## Summary

|                                                                                                                                                                                                       ### Public methods                                                                                                                                                                                                       |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)                                                                                                                                                                                                    | [getAnnotationProcessorConfiguration](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#getAnnotationProcessorConfiguration())`()` Access to the variant's annotation processor[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html); for example, the debugAnnotationProcessor[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)for the debug variant.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Artifacts](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/artifact/Artifacts)                                                                                                                                                                                 | [getArtifacts](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#getArtifacts())`()` Access to the variant's buildable artifacts for build customization.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[FileCollection](https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html)                                                                                                                                                                                                       | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getCompileClasspath](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#getCompileClasspath())`()` Access to the variant's compile classpath.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)                                                                                                                                                                                                    | [getCompileConfiguration](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#getCompileConfiguration())`()` Access to the variant's compile[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html); for example, the debugCompileClasspath[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)for the debug variant.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Instrumentation](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Instrumentation)                                                                                                                                                                      | [getInstrumentation](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#getInstrumentation())`()` Access to the variant's instrumentation options.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[JavaCompilation](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/JavaCompilation)                                                                                                                                                                      | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getJavaCompilation](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#getJavaCompilation())`()` Access to the variant's java compilation options.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Provider](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`>` | [getNamespace](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#getNamespace())`()` The namespace of the generated R and BuildConfig classes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)                                                                                                                                                                                                    | [getRuntimeConfiguration](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#getRuntimeConfiguration())`()` Access to the variant's runtime[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html); for example, the debugRuntimeClasspath[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)for the debug variant.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Sources](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Sources)                                                                                                                                                                                      | [getSources](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#getSources())`()` Access to variant's source files.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                | ~~[setAsmFramesComputationMode](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#setAsmFramesComputationMode(com.android.build.api.instrumentation.FramesComputationMode))~~`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[FramesComputationMode](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/instrumentation/FramesComputationMode)` mode)` **This method is deprecated.**Will be removed in v9.0, use the instrumentation block.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                | `<ParamT extends `[InstrumentationParameters](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/instrumentation/InstrumentationParameters)`> `~~[transformClassesWith](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#transformClassesWith(java.lang.Class,com.android.build.api.instrumentation.InstrumentationScope,kotlin.Function1))~~`(` ` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Class](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[AsmClassVisitorFactory](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/instrumentation/AsmClassVisitorFactory)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` ParamT>> classVisitorFactoryImplClass,` ` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[InstrumentationScope](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/instrumentation/InstrumentationScope)` scope,` ` @`[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)` ParamT, `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`> instrumentationParamsConfig` `)` **This method is deprecated.**Will be removed in v9.0, use the instrumentation block. |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ### Inherited methods                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| From[com.android.build.api.variant.ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | [getBuildType](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity#getBuildType())`()` Build type name, might be replaced with access to locked DSL object once ready.                 | | `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | [getFlavorName](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity#getFlavorName())`()` The multi-flavor name of the variant.                                                         | | `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | [getName](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity#getName())`()` Component's name.                                                                                         | | `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[List](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Pair](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`, @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`>>` | [getProductFlavors](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity#getProductFlavors())`()` List of flavor names, might be replaced with access to locked DSL objects once ready. | |

## Public methods

### getAnnotationProcessorConfiguration

```
abstract @NonNull Configuration getAnnotationProcessorConfiguration()
```

Access to the variant's annotation processor[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html); for example, the debugAnnotationProcessor[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)for the debug variant.

The returned[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)should not be resolved until execution time.  

### getArtifacts

```
abstract @NonNull Artifacts getArtifacts()
```

Access to the variant's buildable artifacts for build customization.  

### getCompileClasspath

```
@Incubating
abstract @NonNull FileCollection getCompileClasspath()
```

Access to the variant's compile classpath.

The returned[FileCollection](https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html)should not be resolved until execution time.  

### getCompileConfiguration

```
abstract @NonNull Configuration getCompileConfiguration()
```

Access to the variant's compile[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html); for example, the debugCompileClasspath[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)for the debug variant.

The returned[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)should not be resolved until execution time.  

### getInstrumentation

```
abstract @NonNull Instrumentation getInstrumentation()
```

Access to the variant's instrumentation options.  

### getJavaCompilation

```
@Incubating
abstract @NonNull JavaCompilation getJavaCompilation()
```

Access to the variant's java compilation options.  

### getNamespace

```
abstract @NonNull Provider<@NonNull String> getNamespace()
```

The namespace of the generated R and BuildConfig classes. Also, the namespace used to resolve any relative class names that are declared in the AndroidManifest.xml.  

### getRuntimeConfiguration

```
abstract @NonNull Configuration getRuntimeConfiguration()
```

Access to the variant's runtime[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html); for example, the debugRuntimeClasspath[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)for the debug variant.

The returned[Configuration](https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html)should not be resolved until execution time.  

### getSources

```
abstract @NonNull Sources getSources()
```

Access to variant's source files.  

### setAsmFramesComputationMode

```
abstract void [setAsmFramesComputationMode](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#setAsmFramesComputationMode(com.android.build.api.instrumentation.FramesComputationMode))(@NonNull FramesComputationMode mode)
```
| **This method is deprecated.**   
Will be removed in v9.0, use the instrumentation block.  

### transformClassesWith

```
abstract void <ParamT extends InstrumentationParameters> [transformClassesWith](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Component#transformClassesWith(java.lang.Class,com.android.build.api.instrumentation.InstrumentationScope,kotlin.Function1))(
    @NonNull Class<@NonNull AsmClassVisitorFactory<@NonNull ParamT>> classVisitorFactoryImplClass,
    @NonNull InstrumentationScope scope,
    @NonNull Function1<@NonNull ParamT, Unit> instrumentationParamsConfig
)
```
| **This method is deprecated.**   
| Will be removed in v9.0, use the instrumentation block.