# com.android.build.api.variant

# com.android.build.api.variant

## Interfaces

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [AarMetadata](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/AarMetadata)                                                           | Variant object for configuring AAR metadata.                                                                                                                                                                                                                                                                                                                                                  |
| [AndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/AndroidComponentsExtension)                             | Generic extension for Android Gradle Plugin related components.                                                                                                                                                                                                                                                                                                                               |
| [AndroidResources](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/AndroidResources)                                                 | Defines a variant's aapt options.                                                                                                                                                                                                                                                                                                                                                             |
| [AndroidTest](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/AndroidTest)                                                           | Properties for the android test Variant of a module.                                                                                                                                                                                                                                                                                                                                          |
| [AndroidVersion](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/AndroidVersion)                                                     |                                                                                                                                                                                                                                                                                                                                                                                               |
| [AnnotationProcessor](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/AnnotationProcessor)                                           |                                                                                                                                                                                                                                                                                                                                                                                               |
| [ApkPackaging](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ApkPackaging)                                                         | Defines an APK variant's packaging options.                                                                                                                                                                                                                                                                                                                                                   |
| [ApplicationAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ApplicationAndroidComponentsExtension)       | Extension for the Android Application Gradle Plugin components.                                                                                                                                                                                                                                                                                                                               |
| [ApplicationVariant](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ApplicationVariant)                                             | Properties for the main Variant of an application.                                                                                                                                                                                                                                                                                                                                            |
| [ApplicationVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ApplicationVariantBuilder)                               | Application specific variant object that contains properties that will determine the variant's build flow.                                                                                                                                                                                                                                                                                    |
| [BuiltArtifact](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/BuiltArtifact)                                                       | Represents a built artifact that is present in the file system.                                                                                                                                                                                                                                                                                                                               |
| [BuiltArtifacts](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/BuiltArtifacts)                                                     | Represents a[Collection](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-collection/index.html)of[BuiltArtifact](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/BuiltArtifact)produced by a[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html).                                              |
| [BuiltArtifacts.TransformParams](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/BuiltArtifacts.TransformParams)                     | Specialized version of Gradle's[WorkParameters](https://docs.gradle.org/current/javadoc/org/gradle/workers/WorkParameters.html)so we can retrieve the output file generated when transforming an instance of[BuiltArtifacts](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/BuiltArtifacts)into a new one.                                        |
| [BuiltArtifactsLoader](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/BuiltArtifactsLoader)                                         | Facility to load[BuiltArtifacts](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/BuiltArtifacts)instances from metadata files in the file system.                                                                                                                                                                                                  |
| [BundleConfig](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/BundleConfig)                                                         | Information related to the actions creating a bundle (.aab) file for the variant.                                                                                                                                                                                                                                                                                                             |
| [CanMinifyAndroidResources](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/CanMinifyAndroidResources)                               | Interface for component that can shrink resources                                                                                                                                                                                                                                                                                                                                             |
| [CanMinifyAndroidResourcesBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/CanMinifyAndroidResourcesBuilder)                 | Interface for component builder that can shrink resources                                                                                                                                                                                                                                                                                                                                     |
| [CanMinifyCode](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/CanMinifyCode)                                                       | Interface for component that can minify code                                                                                                                                                                                                                                                                                                                                                  |
| [CanMinifyCodeBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/CanMinifyCodeBuilder)                                         | Interface for component builder that can minify code                                                                                                                                                                                                                                                                                                                                          |
| [CodeTransparency](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/CodeTransparency)                                                 |                                                                                                                                                                                                                                                                                                                                                                                               |
| [Component](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Component)                                                               |                                                                                                                                                                                                                                                                                                                                                                                               |
| [ComponentBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ComponentBuilder)                                                 | Component object that contains properties that must be set during configuration time as it changes the build flow for the variant.                                                                                                                                                                                                                                                            |
| [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ComponentIdentity)                                               | Variant Configuration represents the identify of a variant                                                                                                                                                                                                                                                                                                                                    |
| [DependenciesInfo](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/DependenciesInfo)                                                 | Read-only object to access dependencies information properties during com.android.build.api.variant.AndroidComponentsExtension#onVariants                                                                                                                                                                                                                                                     |
| [DependenciesInfoBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/DependenciesInfoBuilder)                                   |                                                                                                                                                                                                                                                                                                                                                                                               |
| [DexPackagingOptions](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/DexPackagingOptions)                                           | Defines an APK variant's packaging options for dex files.                                                                                                                                                                                                                                                                                                                                     |
| [DslLifecycle](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/DslLifecycle)                                                         |                                                                                                                                                                                                                                                                                                                                                                                               |
| [DynamicFeatureAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/DynamicFeatureAndroidComponentsExtension) | Extension for the Android Dynamic Feature Gradle Plugin components.                                                                                                                                                                                                                                                                                                                           |
| [DynamicFeatureVariant](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/DynamicFeatureVariant)                                       |                                                                                                                                                                                                                                                                                                                                                                                               |
| [DynamicFeatureVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/DynamicFeatureVariantBuilder)                         |                                                                                                                                                                                                                                                                                                                                                                                               |
| [ExternalNativeBuild](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ExternalNativeBuild)                                           | Parameters to use when building native components.                                                                                                                                                                                                                                                                                                                                            |
| [ExternalNdkBuild](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ExternalNdkBuild)                                                 | Interface for ndk-build per-variant info.                                                                                                                                                                                                                                                                                                                                                     |
| [FilterConfiguration](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/FilterConfiguration)                                           | Immutable filter configuration.                                                                                                                                                                                                                                                                                                                                                               |
| [GeneratesAar](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/GeneratesAar)                                                         |                                                                                                                                                                                                                                                                                                                                                                                               |
| [GeneratesApk](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/GeneratesApk)                                                         | Cross cutting interface for[Component](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Component)subtypes that are producing APK files.                                                                                                                                                                                                            |
| [GeneratesApkBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/GeneratesApkBuilder)                                           | Cross-cutting interface for components builders that produce APK files.                                                                                                                                                                                                                                                                                                                       |
| [GeneratesTestApk](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/GeneratesTestApk)                                                 |                                                                                                                                                                                                                                                                                                                                                                                               |
| [HasAndroidResources](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/HasAndroidResources)                                           |                                                                                                                                                                                                                                                                                                                                                                                               |
| [HasAndroidTest](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/HasAndroidTest)                                                     | Variants that optionally have instrumented tests.                                                                                                                                                                                                                                                                                                                                             |
| [HasAndroidTestBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/HasAndroidTestBuilder)                                       | Interface that mark the potential existence of android tests associated with a variant.                                                                                                                                                                                                                                                                                                       |
| [HasTestFixtures](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/HasTestFixtures)                                                   | Variants that optionally have test fixtures.                                                                                                                                                                                                                                                                                                                                                  |
| [HasTestFixturesBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/HasTestFixturesBuilder)                                     | Interface that mark the potential existence of test fixtures associated with a variant.                                                                                                                                                                                                                                                                                                       |
| [Instrumentation](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Instrumentation)                                                   | Options to register asm class visitors and to configure the instrumentation process.                                                                                                                                                                                                                                                                                                          |
| [JavaCompilation](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/JavaCompilation)                                                   |                                                                                                                                                                                                                                                                                                                                                                                               |
| [JniLibsApkPackaging](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/JniLibsApkPackaging)                                           | Defines an APK variant's packaging options for native library (.so) files.                                                                                                                                                                                                                                                                                                                    |
| [JniLibsPackaging](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/JniLibsPackaging)                                                 | Defines a variant's packaging options for native library (.so) files.                                                                                                                                                                                                                                                                                                                         |
| [LibraryAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/LibraryAndroidComponentsExtension)               | Extension for the Android Library Gradle Plugin components.                                                                                                                                                                                                                                                                                                                                   |
| [LibraryVariant](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/LibraryVariant)                                                     | [Variant](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Variant)for Library projects                                                                                                                                                                                                                                                             |
| [LibraryVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/LibraryVariantBuilder)                                       | [VariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantBuilder)type for library projects                                                                                                                                                                                                                                          |
| [LintLifecycleExtension](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/LintLifecycleExtension)                                     |                                                                                                                                                                                                                                                                                                                                                                                               |
| [Packaging](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Packaging)                                                               | Defines a variant's packaging options.                                                                                                                                                                                                                                                                                                                                                        |
| [Renderscript](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Renderscript)                                                         |                                                                                                                                                                                                                                                                                                                                                                                               |
| [ResValue.Key](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ResValue.Key)                                                         | a generated resource is identified by its type+name as you can create                                                                                                                                                                                                                                                                                                                         |
| [ResourcesPackaging](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ResourcesPackaging)                                             |                                                                                                                                                                                                                                                                                                                                                                                               |
| [ScopedArtifacts](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ScopedArtifacts)                                                   | Scoped artifacts are artifacts that can be made available in the current variant scope, or may be optionally include the project's dependencies in the results.                                                                                                                                                                                                                               |
| [ScopedArtifactsOperation](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ScopedArtifactsOperation)                                 | Defines all possible operations on a[ScopedArtifact](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/artifact/ScopedArtifact)artifact type.                                                                                                                                                                                                                |
| [SigningConfig](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/SigningConfig)                                                       | Defines a variant's signing config.                                                                                                                                                                                                                                                                                                                                                           |
| [SourceDirectories](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/SourceDirectories)                                               | Defines all common behaviors to sources access in AGP.                                                                                                                                                                                                                                                                                                                                        |
| [SourceDirectories.Flat](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/SourceDirectories.Flat)                                     | Represents all the source folders for a source type in the variant.                                                                                                                                                                                                                                                                                                                           |
| [SourceDirectories.Layered](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/SourceDirectories.Layered)                               | Represent a collection of directories that have overlay properties to each other.                                                                                                                                                                                                                                                                                                             |
| [Sources](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Sources)                                                                   | Provides access to all source directories for a[Variant](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Variant).                                                                                                                                                                                                                                 |
| [TestAndroidComponentsExtension](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/TestAndroidComponentsExtension)                     | Extension for the Android Test Gradle Plugin components.                                                                                                                                                                                                                                                                                                                                      |
| [TestComponent](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/TestComponent)                                                       |                                                                                                                                                                                                                                                                                                                                                                                               |
| [TestFixtures](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/TestFixtures)                                                         |                                                                                                                                                                                                                                                                                                                                                                                               |
| [TestVariant](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/TestVariant)                                                           | [Variant](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Variant)for test-only modules.                                                                                                                                                                                                                                                           |
| [TestVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/TestVariantBuilder)                                             | [VariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantBuilder)type for tests associated with a module.                                                                                                                                                                                                                           |
| [UnitTest](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/UnitTest)                                                                 |                                                                                                                                                                                                                                                                                                                                                                                               |
| [Variant](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Variant)                                                                   | Parent interface for all types of variants.                                                                                                                                                                                                                                                                                                                                                   |
| [VariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantBuilder)                                                     | Variant object that contains properties that must be set during configuration time as it changes the build flow for the variant.                                                                                                                                                                                                                                                              |
| [VariantExtension](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantExtension)                                                 | Marker type for[Variant](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Variant)extension objects.                                                                                                                                                                                                                                                |
| [VariantExtensionConfig](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantExtensionConfig)                                     | Configuration object passed to the lambda responsible for creating a[com.android.build.api.variant.VariantExtension](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantExtension)for each[com.android.build.api.variant.Variant](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/Variant)instance. |
| [VariantFilter](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantFilter)                                                       | **This interface is deprecated.**Use AndroidComponentsExtension.beforeVariants API to disable specific variants                                                                                                                                                                                                                                                                               |
| [VariantInfo](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantInfo)                                                           | **This interface is deprecated.**                                                                                                                                                                                                                                                                                                                                                             |
| [VariantOutput](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantOutput)                                                       | Defines a variant output.                                                                                                                                                                                                                                                                                                                                                                     |
| [VariantOutputConfiguration](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantOutputConfiguration)                             |                                                                                                                                                                                                                                                                                                                                                                                               |
| [VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantSelector)                                                   | Selector to reduce the number of variants that are of interests when calling any of the variant API like[AndroidComponentsExtension.beforeVariants](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/AndroidComponentsExtension#beforeVariants(com.android.build.api.variant.VariantSelector,kotlin.Function1)).                                    |

## Classes

|-----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [BuildConfigField](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/BuildConfigField)         | Field definition for the generated BuildConfig class.                                                                                                                                                                                                                                                                                                      |
| [DslExtension](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/DslExtension)                 | Third party DSL extension configuration.                                                                                                                                                                                                                                                                                                                   |
| [DslExtension.Builder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/DslExtension.Builder) | Creates a[Builder](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/DslExtension.Builder)to instance to create a[DslExtension](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/DslExtension)containing all desired extension points to the Android Gradle Plugin DSL. |
| [ResValue](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ResValue)                         | Resource to be generated by the build system.                                                                                                                                                                                                                                                                                                              |

## Enums

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|
| [FilterConfiguration.FilterType](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/FilterConfiguration.FilterType)               | Split dimension type                                                                                                      |
| [ScopedArtifacts.Scope](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/ScopedArtifacts.Scope)                                 | Defines possible scopes.                                                                                                  |
| [VariantOutputConfiguration.OutputType](https://developer.android.com/reference/tools/gradle-api/8.0/com/android/build/api/variant/VariantOutputConfiguration.OutputType) | Type of package file, either the main APK or a full split APK file containing resources for a particular split dimension. |